Что возвращает CvMatchShapes? - PullRequest
4 голосов
/ 22 марта 2012

У меня есть эти два изображения.

small size

И ... larger size

Я превратил их в изображения в градациях серого, а затем передал эти два изображенияcvMatchImages вот так

Double someValue = cvMatchShapes(grayImage, grayImage2, CV_CONTOURS_MATCH_I2, 0);
    System.out.println(someValue);

Значение, которое было напечатано sysout, было 1,465496453484283.Что представляет собой это значение?Как я могу использовать его, чтобы соответствовать другим изображениям, а также как я могу отклонить те, которые не делают?

1 Ответ

2 голосов
/ 23 марта 2012

значение означает, насколько эти два объекта различны, оно представляет расстояние между моментами формы Ху-ху между двумя фигурами. чем он меньше, тем больше похожи эти два объекта. Пороговое значение может быть использовано для сопоставления следующим образом: если выходное значение меньше порогового значения, два объекта совпадают или два объекта отличаются. От того, как выбрать порог, зависит. Вы можете использовать несколько экземпляров для тренировки порога. Я настоятельно советую вам нормализовать объекты на изображениях до аналогичного размера. Это даст вам большую точность

...