
void cv::distanceTransform ( InputArray src,
OutputArray dst,
int distanceType,
int maskSize,
int dstType = CV_32F
)
- //图像距离的变换
- void Image_range_transformation(Mat image){
- Mat rice;
- cvtColor(image,rice,COLOR_BGR2GRAY);
- Mat riceBW,riceBW_INV;
- //将图像转成二值图像,同时把黑白区域图像互换
- threshold(rice,riceBW,50,255,THRESH_BINARY);
- threshold(rice,riceBW_INV,50,255,THRESH_BINARY_INV);
- //距离变换
- Mat dist,dist_INV;
- distanceTransform(riceBW,dist,1,3,CV_32F);//为了显示清晰,将数据类型变成CV_32F
- distanceTransform(riceBW_INV,dist_INV,1,3,CV_8U);
- //显示变换结果
- imwrite("/sdcard/DCIM/dist1.png",dist);
- imwrite("/sdcard/DCIM/dist_INV1.png",dist_INV);
- }
-
图像黑白区域互换后进行距离变换的结果:

