功能:对一个图像进行膨胀操作。
函数形式:
void cvDilate (
const CvArr * src,
CvArr * dst,
IplConvKernel * element = NULL,
int iterations = 1
)
参数列表:
src :输入图像,图像为单通道或多通道,对于多通道的图像对每个通道单独处理。(单通道为灰度图,多通道为彩图)
dst :输出图像,图像为输入图像通道数。
element :用于膨胀的结构元素。若为 NULL, 则使用 3×3长方形的结构元素
iterations : 膨胀的次数。膨胀可以重复进行 (iterations)次. 对彩色图像,每个彩色通道单独处理。
程序应用示例:
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
int main()
{
IplImage *image = cvLoadImage("test1.jpg");
CvMat *imageR = cvCreateMat(512, 512,CV_8UC3);
cvResize(image, imageR);
cvShowImage("原图", imageR);
// CvSize size = cvSize(512,512);
CvMat *imageD1 = cvCreateMat(512, 512,CV_8UC3);
CvMat *imageD2 = cvCreateMat(512, 512,CV_8UC3);
// IplImage *m = cvCreateImage(size, IPL_DEPTH_8U, 3);
IplConvKernel* kernel = cvCreateStructuringElementEx(5, 3, 2, 1,CV_SHAPE_ELLIPSE);
cvErode(imageR, imageD1, kernel);
cvDilate(imageR, imageD2, kernel);
cvShowImage("腐蚀", imageD1);
cvShowImage("膨胀", imageD2);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseMat(&imageD1);
cvReleaseMat(&imageD2);
cvReleaseMat(&imageR);
cvReleaseImage(&image);
return 0;
}