在数字图像处理中,图像的形态学变换占有很重要的地位。基本的形态转换就是膨胀和腐蚀,它们能实现多种功能:例如消除噪声、分割出独立的图像元素以及在图像中连接相邻的元素。当然形态学也常备用于求出图像的梯度。
cvErode()
函数功能:对图像进行腐蚀
函数原型:void cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );
函数说明:
#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; }
原文地址:http://blog.csdn.net/embedclub_lyf/article/details/44305961