cv2.createShapeContextDistanceExtractor всегда возвращает 0.0
Я хочу вычислить расстояние между двумя фигурами, используя расстояние Хаусдорфа или меру контекста формы с помощью cv2. Фигуры - это простые белые фигуры на черном фоне.
Чтобы найти расстояние между двумя фигурами, я нахожу контуры каждой фигуры, а затем передаю контуры следующим функциям: ShapeDistanceExtractor::computeDistance(contours1, countours2) и HausdorffDistanceExtractor::computeDistance(contours1, countours2).
Не могли бы вы объяснить, почему во время сравнения 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