Я использую функцию cv2.matchShapes () в OpenCV, чтобы найти фигуру на изображении, наиболее похожем на другую фигуру.
Это дает мне странные результаты, например, когда я сопоставляю форму (aкруглая монета) против формы свитера он возвращает 0,09, близкий счет и лучший результат, чем когда он совпадает с реальной монетой.
Это мой код:
for contour in cnts:
box = bounding_box(contour)
orig = image.copy()
cv2.drawContours(orig, [contour, reference_contour],
-1, (0, 0, 255), 2)
cv2.putText(
orig, "SIMILARITY: {0:.4f}".format(
cv2.matchShapes(
contour, reference_contour, 1, 0.0)
),
(10, 70), cv2.FONT_HERSHEY_SIMPLEX, 0.65, (255, 0, 0), 2)
cv2.imshow("coin_metric_cnn.py", orig)
cv2.waitKey(0)
Я что-то не так делаю?