首页 > 代码库 > OpenCV官方文档学习记录(8)

OpenCV官方文档学习记录(8)

腐蚀和膨胀效果

 

主要使用

erode(src, dst, element);

dilate(src, dst, element);

这两个函数:

示例代码:

 1 #include <opencv2\opencv.hpp> 2 #include <iostream> 3 #include <string> 4  5 #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 6  7 int MAX_KERNEL_LENGTH = 31; 8  9 using namespace std;10 using namespace cv;11 12 void Show(std::string name,Mat img)13 {14     namedWindow(name, CV_WINDOW_AUTOSIZE);15     imshow(name, img);16 }17 18 void callBack(int, void*)19 {}20 21 int main(void)22 {23     Mat src = http://www.mamicode.com/imread("cat.jpg");24     Mat dst = src.clone();25     Show("Src", src);26     int size = 2;27     Mat element = getStructuringElement(MORPH_ELLIPSE, Size(2 * size + 1, 2 * size + 1), Point(size, size));28     erode(src, dst, element);29     Show("Dst 1", dst);30     dilate(src, dst, element);31     Show("Dst 2", dst);32     namedWindow("Test", CV_WINDOW_AUTOSIZE);33     createTrackbar("TrackerBar", "Test",&size,100,callBack);34     waitKey();35     return 0;36 }

 

注意element这个数组是我们要进行变换的结构元素(形态学原理),默认是3x3的矩阵,同时可以通过宏变量定义矩阵形状

分别为方形,十字形,椭圆形:MORPH_RECT,MORPH_CROSS,MORPH_ELLIPSE;

同时最后使用了一个TrackerBar放到了窗口上,范围从1-100

结果:

 

原图:(来自opencv的doc目录)

OpenCV官方文档学习记录(8)