简介
图像的距离变换被定义为一幅新的图像,该图像的每个输出像素被设成与输入像素中0像素最近的距离。显然,典型
的距离变换的输入应为某些边缘图像。在多数应用中,距离变换的输入是例如Canny 边缘检测的检测图像的转换输
出(即边缘的值是0,非边缘的是非0)。
- #include<cv.h>
- #include<highgui.h>
- #pragma comment(lib, "cv.lib")
- #pragma comment(lib, "cxcore.lib")
- #pragma comment(lib, "highgui.lib")
- int main()
- {
- IplImage* src = cvLoadImage ("test.png", 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;
- }