cv2.createShapeContextDistanceExtractor始终返回0.0

时间:2018-02-06 16:45:30

标签: python opencv cv2 shape-context

我想使用带有cv2的Hausdorff距离或形状上下文距离度量来计算两个形状之间的距离。形状是黑色背景上的简单白色形状。

为了找到两个形状之间的距离,我找到每个形状的轮廓,然后将轮廓传递给以下函数:ShapeDistanceExtractor :: computeDistance(contours1,countours2)和HausdorffDistanceExtractor :: computeDistance(contours1,countours2)。 / p>

请你解释一下,为什么在比较期间ShapeDistanceExtractor总是返回0.0,而第二种方法根据图像上字符的位置给出不同的结果?

import cv2
a = cv2.imread("1.png",0);
b = cv2.imread("2.png",0);

_, ca, _ = cv2.findContours(a, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_TC89_KCOS) 
_, cb, _ = cv2.findContours(b, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_TC89_KCOS) 
print np.shape(ca[0]) , np.shape(cb[0])

hd = cv2.createHausdorffDistanceExtractor()
sd = cv2.createShapeContextDistanceExtractor()

d1 = hd.computeDistance(ca[0],cb[0])
d2 = sd.computeDistance(ca[0],cb[0])

print d1, " ", d2

1 个答案:

答案 0 :(得分:0)

使用以下update修复。