函数声明为:
CVAPI(void) cvMorphologyEx( const CvArr* src, CvArr* dst,
CvArr* temp, IplConvKernel* element,
int operation, int iterations CV_DEFAULT(1) );
参数分别为原图像,输出图像,temp临时图像,自定义核,形态学操作方法(CV_MOP_OPEN CV_MOP_CLOSE CV_MOP_GRADIENT CV_MOP_TOPHAT CV_MOP_BLACKHAT)演示代码如下:采用默认的3*3方形核。注意:三通道的彩色图像同样可以进行该运算。
#include <iostream>
#include <cv.h>
#include <highgui.h>
using namespace cv;
using namespace std;
int main()
{
IplImage *img = cvLoadImage("C:\\Users\\asus\\Desktop\\DIP\\image\\wall.jpg",0);
IplImage *img2 = cvLoadImage("C:\\Users\\asus\\Desktop\\DIP\\image\\wall.jpg",0);
IplImage *temp = cvCreateImage(cvGetSize(img),8,1);
cvMorphologyEx(img2,img2,temp,NULL,CV_MOP_GRADIENT);//灰度形态学运算;
cvNamedWindow("src");
cvNamedWindow("result");
cvShowImage("src",img);
cvShowImage("result",img2);
waitKey(5000);
cvDestroyAllWindows();
cvReleaseImage(&img);
cvReleaseImage(&img2);
cvReleaseImage(&temp);
}