十、形态学操作
相关APImorphology(原图像,处理后图像,形态学操作类型,结构元素(kernel));
Mat kernel = getStructuringElement(MORPH_RECT, Size(5,5), Point(-1, -1));//获取结构化参数,第一个参数为传入的模板类型,RECT为矩形;第二个参数为模板的大小;第三个参数为锚点的坐标,(-1,-1)代表是模板的中心
morphology(原图像,处理后图像,形态学操作类型,结构元素);
1、开操作(open)
- 先腐蚀后膨胀
- 可以去掉小的白色对象,保证大的白色部分不变。假设对象是白色,背景是黑色。
morphologyEx(src, dst, MORPH_OPEN, kernel);//开操作,第一个参数为原图像,第二个参数为操作后图像,第三个参数为执行操作类型,第四个参数为模板类型
2、闭操作(close)
- 先膨胀后腐蚀
- 可以填充小的黑色洞,大片的黑色不变,假设对象是白色,背景是黑色。
morphologyEx(src, dst, MORPH_CLOSE, kernel);//闭操作,第一个参数为原图像,第二个参数为操作后图像,第三个参数为执行操作类型,第四个参数为模板类型
3、形态学梯度(Morphological Gradient)
- 膨胀减去腐蚀
morph(src, element) = dilate(src, element) - erode(src, element)
- 又称为基本梯度(其它还包括内部梯度(原图减去腐蚀的结果)、方向梯度(x, y方向进行梯度的变换))。
morphologyEx(src, dst, MORPH_GRADIENT, kernel);//梯度运算,用膨胀图像减去腐蚀图像
4、顶帽(top hat)
- 顶帽是原图像与开操作之间的差值图像。
- 经过开操作,大的白色区域不变,只有小白点变成了黑色,用原图像减去开操作后的图像,大的白色的点被消掉了,只留下图像中小的白点。
morphologyEx(src, dst, MORPH_TOPHAT, kernel);//顶帽运算,原图像减去开操作图像
5、黑帽(black hat)
- 黑帽是闭操作图像与原图像的差值图像
- 经过闭操作后,小的黑点变成了白色,再用该图像减去原图像,则只有原图中小黑点的区域变成白色。
morphologyEx(src, dst, MORPH_BLACKHAT, kernel);//黑帽操作