距离变换(cvDistTransform)

距离变换的一些简单介绍


简介

图像的距离变换被定义为一幅新的图像,该图像的每个输出像素被设成与输入像素中0像素最近的距离。显然,典型
的距离变换的输入应为某些边缘图像。在多数应用中,距离变换的输入是例如Canny 边缘检测的检测图像的转换输
出(即边缘的值是0,非边缘的是非0)。


示例代码

#include<cv.h>
#include<highgui.h>

int main()
{
	IplImage* src = cvLoadImage ("lena.jpg", 1);
	IplImage* dst = cvCreateImage (cvGetSize(src), IPL_DEPTH_32F, 1);
	IplImage* canny = cvCreateImage (cvGetSize(src), IPL_DEPTH_8U, 1);

	cvCvtColor (src, canny, CV_RGB2GRAY);
	cvCanny (canny, canny, 100, 200, 3);
	cvDistTransform (canny, dst, CV_DIST_WELSCH, 3);
	
	cvNamedWindow ("src", 1);
	cvShowImage ("src", src);
	cvNamedWindow ("dist", 1);
	cvShowImage ("dist", canny);

	cvWaitKey (0);

	cvReleaseImage (&src);
	cvReleaseImage (&canny);
	cvReleaseImage (&dst);

	return 0;
}


你可能感兴趣的:(距离变换(cvDistTransform))