OpenCV笔记(十)形态学操作

文章目录

  • 一、形态学操作
    • 1.开操作
    • 2.闭操作
    • 3.形态学梯度
    • 4.顶帽
    • 5.黑帽
  • 二、相关API
  • 三、综合例程

一、形态学操作

1.开操作

open

  • 先腐蚀后膨胀

  • 可以去掉小的对象,假设对象是前景色,背景是后景色

2.闭操作

close

  • 先膨胀后腐蚀(bin2)

  • 可以填充小的洞(fill hole),假设对象是前景色,背景是黑色

3.形态学梯度

Morphological Gradient

  • 膨胀减去腐蚀

  • 又称为基本梯度(其它还包括-内部梯度、方向梯度)

4.顶帽

top hat

  • 顶帽 是原图像与开操作之间的差值图像
OpenCV笔记(十)形态学操作_第1张图片

5.黑帽

black hat

  • 黑帽是闭操作图像与源图像的差值图像
OpenCV笔记(十)形态学操作_第2张图片

二、相关API

morphologyEx(src, dest, CV_MOP_BLACKHAT, kernel);

- Mat src – 输入图像

- Mat dest – 输出结果

- int OPT – CV_MOP_OPEN/ CV_MOP_CLOSE/ CV_MOP_GRADIENT / CV_MOP_TOPHAT/ CV_MOP_BLACKHAT 形态学操作类型

-Mat kernel 结构元素

-int Iteration 迭代次数,默认是1

三、综合例程

#include 
#include 
#include 

using namespace cv;
int main(int argc, char** argv) {
	Mat src, dst;
	src = imread("D:/vcprojects/images/bin2.png");
	if (!src.data) {
		printf("could not load image...\n");
	}
	namedWindow("input image", CV_WINDOW_AUTOSIZE);
	imshow("input image", src);
	char output_title[] = "morphology demo";
	namedWindow(output_title, CV_WINDOW_AUTOSIZE);

	Mat kernel = getStructuringElement(MORPH_RECT, Size(11, 11), Point(-1, -1));
	morphologyEx(src, dst, CV_MOP_BLACKHAT, kernel);
	imshow(output_title, dst);

	waitKey(0);
	return 0;
}

你可能感兴趣的:(#,OpenCV图像处理,opencv,计算机视觉,c++)