Opencv对图像做腐蚀和膨胀处理的结果
2015-03-16 14:33
357 查看
在数字图像处理中,图像的形态学变换占有很重要的地位。基本的形态转换就是膨胀和腐蚀,它们能实现多种功能:例如消除噪声、分割出独立的图像元素以及在图像中连接相邻的元素。当然形态学也常备用于求出图像的梯度。
下面就介绍OpenCV中对图像进行二值化的关键函数
cvErode()
函数功能:对图像进行腐蚀
函数原型:void
cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );
函数说明:
src:输入图像.
dst:输出图像.
element:用于腐蚀的结构元素。若为 NULL, 则使用 3×3 长方形的结构元素
iterations:腐蚀的次数
cvDilate()
函数功能:对图像进行膨胀
函数原型:void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel*
element=NULL, int iterations=1 );
函数说明:
src输入图像.
dst输出图像.
element结构元素。若为 NULL, 则使用默认的3×3 长方形,锚点在中间的结构元素,进行膨胀运算
iterations膨胀的次数
一. 关键函数介绍
下面就介绍OpenCV中对图像进行二值化的关键函数cvErode()
函数功能:对图像进行腐蚀
函数原型:void
cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );
函数说明:
src:输入图像.
dst:输出图像.
element:用于腐蚀的结构元素。若为 NULL, 则使用 3×3 长方形的结构元素
iterations:腐蚀的次数
cvDilate()
函数功能:对图像进行膨胀
函数原型:void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel*
element=NULL, int iterations=1 );
函数说明:
src输入图像.
dst输出图像.
element结构元素。若为 NULL, 则使用默认的3×3 长方形,锚点在中间的结构元素,进行膨胀运算
iterations膨胀的次数
二. 示例程序代码
#include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; const char *pstrSrcWindowsTitle = "原图"; const char *pstrDestWindowsTitle_1 = "对原图腐蚀之后"; const char *pstrDestWindowsTitle_2 = "对原图膨胀之后"; const char *pstrDestWindowsTitle_3 = "对腐蚀过的图片作膨胀"; int main(int argc, char *argv[]){ IplImage * src_image = cvLoadImage(argv[1]);//加载图片 cvNamedWindow(pstrDestWindowsTitle_1, CV_WINDOW_AUTOSIZE);//创建窗口用于显示 cvNamedWindow(pstrSrcWindowsTitle, CV_WINDOW_AUTOSIZE); cvShowImage(pstrSrcWindowsTitle, src_image);//显示原图 //创建两个图片空间用于存放变换过的图片 IplImage * out_image = cvCreateImage(cvGetSize(src_image), IPL_DEPTH_8U, 3); IplImage * out_image_2 = cvCreateImage(cvGetSize(src_image), IPL_DEPTH_8U, 3); cvDilate(src_image, out_image, NULL, 2);//膨胀处理,并显示 cvShowImage(pstrDestWindowsTitle_2, out_image); cvErode(src_image, out_image,NULL,2);//腐蚀处理,并显示 cvShowImage(pstrDestWindowsTitle_1, out_image); cvDilate(out_image, out_image_2, NULL, 2);//对腐蚀过的图像再膨胀 cvShowImage(pstrDestWindowsTitle_3, out_image_2); waitKey(0); return 0; }
相关文章推荐
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate
- opencv图像处理——形态学腐蚀膨胀练习示例代码
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV3图像处理】形态学 --- 膨胀、腐蚀、开运算 闭运算、形态学梯度、顶帽运算、黑帽运算
- opencv 图像处理 形态学操作 腐蚀 膨胀 开闭运算 阈值二值化 图像卷积 图像金字塔 Sobel算子 Laplacian 算子 candy边缘检测 霍夫变换 直方图
- OpenCV之十 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- OpenCV1.0图像处理形态学操作腐蚀Erode与膨胀Dilate
- Opencv-图像形态学处理比较(膨胀、腐蚀、开闭)
- OpenCV1.0图像处理形态学操作腐蚀Erode与膨胀Dilate
- OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- OpenCV&图像处理_3:以腐蚀[eroding]和膨胀[dilating]为基础的形态学操作和图像金字塔[image pyramids]