【opencv练习15 - 腐蚀膨胀】
2016-09-04 12:36
459 查看
/****************************************************** 测试程序 腐蚀膨胀 时间:2016年8月24日 ******************************************************/ //【全局变量*3】 Global variables Mat src; Mat erosion_dst; Mat dilation_dst; //初始化控制值 int erosion_elem = 0; int erosion_size = 0; int dilation_elem = 0; int dilation_size = 0; int const max_elem = 2; int const max_kernel_size = 21; //【函数头】 void Erosion( int, void* ); void Dilation( int, void* ); int main(void) { /// Load an image src = imread("YY01.jpg"); if( !src.data ) { return -1; } // Create windows namedWindow( "Erosion Demo", WINDOW_AUTOSIZE ); //腐蚀,窗口 namedWindow( "Dilation Demo", WINDOW_AUTOSIZE ); //膨胀,窗口 moveWindow( "Dilation Demo", src.cols, 0 ); //**************************************************** //【创建回调函数滚动条】 Create Erosion Trackbar createTrackbar( "Element:\n 0: Rect \n 1: Cross \n 2: Ellipse", "Erosion Demo", &erosion_elem, max_elem, Erosion ); createTrackbar( "Kernel size:\n 2n +1", "Erosion Demo", &erosion_size, max_kernel_size, Erosion ); /// Create Dilation Trackbar createTrackbar( "Element:\n 0: Rect \n 1: Cross \n 2: Ellipse", "Dilation Demo", &dilation_elem, max_elem, Dilation ); createTrackbar( "Kernel size:\n 2n +1", "Dilation Demo", &dilation_size, max_kernel_size, Dilation ); Erosion( 0, 0 ); Dilation( 0, 0 ); waitKey(0); return 0; } // @function Erosion // 【腐蚀】 // 参数分析: // int //鼠标交互传值 // void* //绑定的滚动条 void Erosion( int, void* ) { int erosion_type = 0; //腐蚀类型 if( erosion_elem == 0 ){ erosion_type = MORPH_RECT; } //腐蚀元素 else if( erosion_elem == 1 ){ erosion_type = MORPH_CROSS; } else if( erosion_elem == 2) { erosion_type = MORPH_ELLIPSE; } Mat element = getStructuringElement( erosion_type, Size( 2*erosion_size + 1, 2*erosion_size+1 ), Point( erosion_size, erosion_size ) ); //【参数配置完毕——应用腐蚀】 Apply the erosion operation erode( src, erosion_dst, element ); imshow( "Erosion Demo", erosion_dst ); } // * @function Dilation void Dilation( int, void* ) { int dilation_type = 0; if( dilation_elem == 0 ){ dilation_type = MORPH_RECT; } else if( dilation_elem == 1 ){ dilation_type = MORPH_CROSS; } else if( dilation_elem == 2) { dilation_type = MORPH_ELLIPSE; } Mat element = getStructuringElement( dilation_type, Size( 2*dilation_size + 1, 2*dilation_size+1 ), Point( dilation_size, dilation_size ) ); //【参数配置完毕——应用膨胀】 Apply the dilation operation dilate( src, dilation_dst, element ); imshow( "Dilation Demo", dilation_dst ); }
相关文章推荐
- opencv学习笔记(十一)——图像腐蚀和膨胀混合运用练习
- 有关opencv的学习(15)—图像的膨胀和腐蚀(1)
- opencv(15)---图像膨胀腐蚀
- opencv图像处理——形态学腐蚀膨胀练习示例代码
- opencv c++函数 imgproc模块2 腐蚀与膨胀(Eroding and Dilating)
- opencv中的膨胀与腐蚀
- Opencv学习笔记-膨胀和腐蚀
- Opencv图像识别从零到精通(16)------膨胀腐蚀
- Opencv对图像做腐蚀和膨胀处理的结果
- (未实用)opencv3.0 函数学习 9——膨胀与腐蚀
- 【OpenCV学习笔记】2.3图像的腐蚀、膨胀、模糊、边缘检测
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate
- opencv-腐蚀和膨胀
- python opencv3图像膨胀和腐蚀
- OpenCV 中腐蚀和膨胀
- OpenCV学习 7:图像形态学:腐蚀、膨胀
- opencv学习笔记第五章:基于形态学运算的图像变换(1)形态学运算进行腐蚀和膨胀
- OpenCV学习(12) 图像的腐蚀与膨胀(3)
- opencv中的膨胀与腐蚀