形态学梯度:将膨胀后的原图像和腐蚀后的原图像做差,可以得到形态学梯度。可以突出高亮区域的外围,因为它是区域的膨胀减去区域的收缩
// CorrosionAndExpand.cpp : Defines the entry point for the console application.
//
#include "Stdafx.h"
#include <cv.h>
#include <highgui.h>
void main()
{
//以原始通道数读取图片1
IplImage* img1 = cvLoadImage("D://vc6.0//MSDev98//MyProjects//MachineVision//TestPic//Lena.bmp",CV_LOAD_IMAGE_UNCHANGED);
IplImage* img2 = cvLoadImage("D://vc6.0//MSDev98//MyProjects//MachineVision//TestPic//Lena.bmp",CV_LOAD_IMAGE_UNCHANGED);
IplImage* img3 = cvLoadImage("D://vc6.0//MSDev98//MyProjects//MachineVision//TestPic//Lena.bmp",CV_LOAD_IMAGE_UNCHANGED);
//命名窗口
cvNamedWindow("Corrosion", CV_WINDOW_AUTOSIZE);
cvNamedWindow("Gradient", CV_WINDOW_AUTOSIZE);
//利用3*3模板进行第一次腐蚀
cvErode(img1, img1, NULL, 1);
cvMorphologyEx(img1, img2, img3, NULL, CV_MOP_GRADIENT, 1);
//显示图片
cvShowImage("Corrosion", img1);
cvShowImage("Gradient", img2);
cvWaitKey(0);
cvReleaseImage(&img1);
cvReleaseImage(&img2);
cvReleaseImage(&img3);
}