天天看点

OpenCV10---形态学操作(开、闭、梯度、顶帽、黑帽)

十、形态学操作

相关API

morphology(原图像,处理后图像,形态学操作类型,结构元素(kernel));

Mat kernel = getStructuringElement(MORPH_RECT, Size(5,5), Point(-1, -1));//获取结构化参数,第一个参数为传入的模板类型,RECT为矩形;第二个参数为模板的大小;第三个参数为锚点的坐标,(-1,-1)代表是模板的中心
morphology(原图像,处理后图像,形态学操作类型,结构元素);
           

1、开操作(open)

  • 先腐蚀后膨胀
  • 可以去掉小的白色对象,保证大的白色部分不变。假设对象是白色,背景是黑色。
OpenCV10---形态学操作(开、闭、梯度、顶帽、黑帽)

2、闭操作(close)

  • 先膨胀后腐蚀
  • 可以填充小的黑色洞,大片的黑色不变,假设对象是白色,背景是黑色。
OpenCV10---形态学操作(开、闭、梯度、顶帽、黑帽)

3、形态学梯度(Morphological Gradient)

  • 膨胀减去腐蚀

    morph(src, element) = dilate(src, element) - erode(src, element)

  • 又称为基本梯度(其它还包括内部梯度(原图减去腐蚀的结果)、方向梯度(x, y方向进行梯度的变换))。
OpenCV10---形态学操作(开、闭、梯度、顶帽、黑帽)

4、顶帽(top hat)

  • 顶帽是原图像与开操作之间的差值图像。
  • 经过开操作,大的白色区域不变,只有小白点变成了黑色,用原图像减去开操作后的图像,大的白色的点被消掉了,只留下图像中小的白点。
OpenCV10---形态学操作(开、闭、梯度、顶帽、黑帽)

5、黑帽(black hat)

  • 黑帽是闭操作图像与原图像的差值图像
  • 经过闭操作后,小的黑点变成了白色,再用该图像减去原图像,则只有原图中小黑点的区域变成白色。
OpenCV10---形态学操作(开、闭、梯度、顶帽、黑帽)