距离变换在OpenCVSharp中不起作用吗?
我的代码非常简单——我对图像进行阈值处理,然后尝试对其应用距离变换在OpenCVSharp中不起作用吗?,opencv,opencvsharp,Opencv,Opencvsharp,我的代码非常简单——我对图像进行阈值处理,然后尝试对其应用DistanceTransform: var source = new Mat(path, ImreadModes.AnyDepth | ImreadModes.AnyColor); var bgr = new Mat[3]; var thresh = new Mat(); var dist = new Mat(); Cv2.Split(source, out bgr); Cv2.AdaptiveThreshold(bgr[2], thr
DistanceTransform
:
var source = new Mat(path, ImreadModes.AnyDepth | ImreadModes.AnyColor);
var bgr = new Mat[3];
var thresh = new Mat();
var dist = new Mat();
Cv2.Split(source, out bgr);
Cv2.AdaptiveThreshold(bgr[2], thresh, 255, AdaptiveThresholdTypes.MeanC, ThresholdTypes.Binary, 13, 2);
Cv2.ImShow("thresh", thresh);
Cv2.DistanceTransform(thresh, dist, DistanceTypes.L2, DistanceMaskSize.Mask5);
Cv2.ImShow("dist", dist);
但好像根本没有应用过滤器:
事实证明,这是由于未能将图像从32位标准化回8位(如所述) 添加以下行后,图像如预期所示:
Cv2.Normalize(dist, dist, 0, 1, NormTypes.MinMax);