函数morphologyEx()说明
morphologyEx()函数是一种形态学变化函数。数学形态学可以理解为一种滤波行为,因此也称为形态学滤波。滤波中用到的滤波器(kernal),在形态学中称为结构元素
函数原型:
void morphologyEx( InputArray src, OutputArray dst, int op, InputArray kernel, Point anchor = Point(-1,-1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue() );
参数:
src :输入图像
dst :输出图像(需要和源图片有一样的尺寸和类型)
kernel :滤波器(结构元素)
anchor :结构元素的原点,默认值(-1,-1),表示锚位于中心
iterations :迭代次数
结构元素种类
| 结构元素 | 注释 |
|---|---|
| CV_MOP_OPEN | 开运算 |
| CV_MOP_CLOSE | 闭运算 |
| CV_MOP_GRADIENT | 梯度运算 |
| CV_MOP_TOPHAT | 顶帽 |
| CV_MOP_BLACKHAT | 黑帽 |
1 形态学操作 - 开
先腐蚀,再膨胀,可清除一些小东西(亮的),放大局部低亮度的区域
示例代码:
void CallBack(int ,void*) {
int tmp = ElementSize*2 + 1;
Mat structureElement = getStructuringElement(MORPH_RECT, Size(tmp, tmp),Size(-1,-1));
morphologyEx(src, dst, CV_MOP_OPEN, structureElement); //开
imshow(OUTPUT_WIN, dst);
}
int main(int argc, char** argv)
{
src = imread("./77.png");
if (!src.data) //判断图片是否加载成功!
{
std::cout << "打开图片失败!" << std::endl;
return -1;
}
namedWindow(OUTPUT_WIN,CV_WINDOW_AUTOSIZE);
createTrackbar("Element size:", OUTPUT_WIN, &ElementSize, max_Size, CallBack);
imshow("src image", src);
waitKey(100000);

本文介绍了OpenCV中的morphologyEx()函数,用于形态学操作,包括开操作、闭操作、梯度、顶帽和黑帽。这些操作有助于图像处理,如清除小物体、突出边缘和特定区域。通过示例代码展示了每种操作的使用方法。
最低0.47元/天 解锁文章
723

被折叠的 条评论
为什么被折叠?



