OpenCV杂记06---形态学、膨胀和腐蚀
来源:互联网 发布:结构软件下载 编辑:程序博客网 时间:2024/05/06 14:04
原文地址:
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/erosion_dilatation/erosion_dilatation.html#morphology-1
总结本程序的收获。
1、掌握窗口排列函数cvMoveWindow的使用。
2、学会创建滑动条并调用回调函数。createTrackbar的第五个参数调用自定义的函数。
存疑的问题。
1、滑动条的名字显示不完整,中间部分被省略。
代码如下。
#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include "highgui.h"#include <stdlib.h>#include <stdio.h>using namespace cv;using namespace std;/// 全局变量Mat src, erosion_dst, 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;char* win_name1 = "Erosion Demo";char* win_name2 = "Dilation Demo";/** Function Headers */void Erosion( int, void* );void Dilation( int, void* );/** @function main */int main( int argc, char** argv ){ char* ImgPath = "D:/lena.jpg"; /// Load 图像 src = imread( ImgPath ); if( !src.data ) { return -1; } /// 创建显示窗口 namedWindow( win_name1, CV_WINDOW_AUTOSIZE ); namedWindow( win_name2, CV_WINDOW_AUTOSIZE ); cvMoveWindow( win_name1, 0,0 ); cvMoveWindow( win_name2, src.cols , 0 ); /// 创建腐蚀 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 ); /// 创建膨胀 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 ); /// Default start Erosion( 0, 0 ); Dilation( 0, 0 ); waitKey(0); return 0;}/** @function Erosion */void Erosion( int, void* ){ int erosion_type; 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 ) ); /// 腐蚀操作 erode( src, erosion_dst, element ); imshow( win_name1, erosion_dst );}/** @function Dilation */void Dilation( int, void* ){ int dilation_type; 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 ) ); ///膨胀操作 dilate( src, dilation_dst, element ); imshow( win_name2, dilation_dst );}
0 0
- OpenCV杂记06---形态学、膨胀和腐蚀
- opencv形态学-腐蚀和膨胀
- opencv----形态学运算:腐蚀、膨胀
- 一起学opencv (六) 形态学-腐蚀和膨胀
- opencv学习图像处理形态学腐蚀和膨胀
- 图像形态学--腐蚀和膨胀
- OpenCV形态学操作 腐蚀 膨胀 开闭
- OpenCV形态学操作 腐蚀 膨胀 开闭
- 腐蚀,膨胀,opencv的形态学处理
- opencv 3.0 形态学运算 膨胀与腐蚀
- OpenCV 系列 --- 形态学操作(膨胀、腐蚀)
- python opencv形态学变换:腐蚀与膨胀
- opencv-腐蚀和膨胀
- opencv腐蚀和膨胀
- opencv 膨胀和腐蚀
- 形态学图像处理-腐蚀和膨胀
- 形态学图像处理-腐蚀和膨胀
- 形态学图像处理-腐蚀和膨胀
- MYSQL企业常用架构与调优经验分享
- like 模糊查询
- AS5600 桂林银行桌面虚拟化里的黑科技
- gmp大数运算库 window下安装配置和使用(上)
- Free VPN integrated in Opera for better online privacyx
- OpenCV杂记06---形态学、膨胀和腐蚀
- 基于mipsel编译Qt4.6.2版本
- 狼羊菜过河
- php获取get/post请求的数据
- eclipse断点调试和程序异常解决方案
- 什么是盐加密 为什么使用盐加密密码
- 在同一个页面使用多个不同的jQuery版本,让它们并存而不冲突
- 转 httpServletResponse reset flushBuffer
- 表达式