opencv-膨胀算法cvDilate

先上定义:

Dilate

使用任意结构元素膨胀图像

void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );
src
输入图像.
dst
输出图像.
element
用于膨胀的结构元素。若为 NULL, 则使用 3×3 长方形的结构元素
iterations
膨胀的次数

函数 cvDilate 对输入图像使用指定的结构元进行膨胀,该结构决定每个具有最小值象素点的邻域形状:

dst=dilate(src,element):  dst(x,y)=max((x',y') in element))src(x+x',y+y')

函数支持(in-place)模式。膨胀可以重复进行 (iterations) 次. 对彩色图像,每个彩色通道单独处理。

 

下边是程序:

// opencv_template.cpp : 定义控制台应用程序的入口点。 //
#include "stdafx.h"
#include "opencv2/opencv.hpp"; 
#include "opencv/cv.h";

using namespace std; 
using namespace cv;

int _tmain(int argc, _TCHAR* argv[]) {  
//cout"""iam a boy"""endl;  
IplImage *img;  img=cvLoadImage("test.jpg",1);  
IplImage *newimg;  
newimg = cvCloneImage(img);

//开始膨胀  
cvDilate(img,newimg,NULL,3);  
//开始腐蚀  
//cvErode(img,newimg,NULL,3);

//开始显示图片  
cvNamedWindow("DilateBefore",CV_WINDOW_AUTOSIZE);  
cvNamedWindow("DilateAfter",CV_WINDOW_AUTOSIZE);  
cvShowImage("DilateBefore",img);  
cvSaveImage("new.jpg",newimg);  
cvShowImage("DilateAfter",newimg);  
cvWaitKey(0);  
//system("pause");  
return 0; 
}

 

 

Leave a Reply