OpenCV自带例子(八)图像腐蚀与膨胀
来源:互联网 发布:xyt什么意思网络用语 编辑:程序博客网 时间:2024/05/18 03:01
腐蚀就是使用算法,将图像的边缘腐蚀掉。作用就是将目标的边缘的“毛刺”踢除掉。
膨胀就是使用算法,将图像的边缘扩大些。作用就是将目标的边缘或者是内部的坑填掉。
#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <stdlib.h>#include <stdio.h>using namespace cv;//Global VariablesMat 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;/**Function headers */void Erosion( int, void* );void Dilation( int, void* );int main( int argc, char** argv ){// Load an imagesrc = imread( "D:\\image\\aa.jpg" );if ( !src.data ){return -1;}// create windowsnamedWindow( "Erosion Demo", CV_WINDOW_AUTOSIZE );namedWindow( "Dilation Demo", CV_WINDOW_AUTOSIZE );cvMoveWindow( "Dilation Demo", src.cols, 0 );// create erosion trackbarcreateTrackbar( "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 trackbarcreateTrackbar( "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 startErosion( 0, 0 );Dilation( 0, 0 );waitKey();imwrite("D:\\image\\erosion.jpg", erosion_dst);imwrite("D:\\image\\dilation.jpg", dilation_dst);return 0;}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 ));// apply the erosion operationerode ( src, erosion_dst, element );imshow( "Erosion Demo", erosion_dst );}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));// apply the dilation operationdilate( src, dilation_dst, element );imshow( "Dilation Demo", dilation_dst);}
- OpenCV自带例子(八)图像腐蚀与膨胀
- opencv 图像的腐蚀与膨胀
- Opencv图像的腐蚀与膨胀总结
- opencv 图像膨胀腐蚀(二)
- 图像腐蚀与膨胀
- 图像腐蚀与膨胀
- opencv腐蚀与膨胀
- opencv 腐蚀与膨胀
- opencv膨胀与腐蚀
- opencv腐蚀与膨胀
- opencv 膨胀与腐蚀
- opencv开发笔记(一):opencv图像的腐蚀、膨胀与图像的显示
- opencv 图像的 腐蚀 膨胀
- OpenCV图像腐蚀和膨胀
- opencv(15)---图像膨胀腐蚀
- OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate
- OpenCV图像处理篇之腐蚀与膨胀
- OpenCV图像处理篇之腐蚀与膨胀
- Android 核心分析 之六 -----IPC框架分析 Binder,Service,Service manager .
- Hibernate的简介(安装和配置)
- DataGridView的行、列调整
- 一个研究生的人生规划——好文值得品味
- SQL 基础9——视图(CREATE VIEW)
- OpenCV自带例子(八)图像腐蚀与膨胀
- 漂亮的二级分类
- Android开发环境搭建
- Linux+varnish安装配置
- 搞IT就像挖煤一样
- win7 vs2010 ogre1.72(1)cmake的问题compiler "cl" is not able to compile a simple test program.
- 利用string table 制作多语言
- as3效率提升
- Android编 译系统分析