opencv 图像距离变换 distanceTransform

图像距离变换:计算图像中每一个非零点距离离自己最近的零点的距离,然后通过二值化0与非0绘制图像。

#include "iostream"
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;

int main()
{
	Mat  img, dst, dstbin, distancetransform,temp;

	img = imread("m3.jpg");
	//转为灰度图
	cvtColor(img, dst, COLOR_BGR2GRAY);
	//二值化,找出目标区域
	threshold(dst, dstbin, 150, 255, THRESH_BINARY);
	//图像距离
	distanceTransform(dstbin, distancetransform, 1, 3, CV_32F);
	//二值化
	threshold(distancetransform, temp, 0, 255, THRESH_BINARY);

	waitKey(0);

	return 1;
}

opencv 图像距离变换 distanceTransform_第1张图片

 非0到最近0的最近距离(街区)

opencv 图像距离变换 distanceTransform_第2张图片

你可能感兴趣的:(Opencv,opencv,人工智能,计算机视觉)