Как я могу сопоставить два рваных края? - PullRequest
4 голосов
/ 08 мая 2019

Ссылка на суть кода. Я пытаюсь восстановить рваную бумагу.Первым шагом является обнаружение разорванного края:

finding the torn edge

Затем один разорванный край поворачивается и сравнивается с другим разорванным краем:

rotating and matching

Документ выравнивается, когда два контура соответствуют друг другу.Одна часть вращается и рваные края сравниваются.Оценка под названием match описывает соответствие между двумя контурами:

tempA = draw_contour(tempA, b, 123, 3)
tempB = draw_contour(tempB, a, 123, 3)
tempC = tempA + tempB
_, thresh = cv2.threshold(tempC, 220, 255, cv2.THRESH_BINARY_INV);
thresh = 255 - thresh
match = sum(sum(thresh))

Эти два контура плохо сочетаются друг с другом: poor fitting Эти контуры очень хорошо сочетаются друг с другом.Здесь документ выровнен: good fitting

Расчет соответствия контура является базовым.Я рисую контуры на отдельных изображениях.Изображения суммируются и применяется порог.Это подсчитывает количество пикселей, где два контура перекрываются.Этот метод работает хорошо, но он слишком медленный, чтобы быть практичным при сравнении нескольких ребер.

Как рассчитать, насколько хорошо совпадают два контура рваных краев?

1 Ответ

0 голосов
/ 08 мая 2019

При условии отсутствия осложнений (см. Мой комментарий выше), вы можете попробовать процедуру, изложенную ниже.См. Следующий рисунок.

edges

  • вычислить уравнение прямой линии, которое соединяет конечные точки ребра1
  • вычислить прямоеУравнение линии, соединяющее конечные точки ребра2
  • , вычисляет угол между этими двумя прямыми
  • , что дает вам две возможности для угла: alpha или 180-alpha
  • найдите середины двух отрезков прямых и выровняйте их (на рисунке это не показано. Возможно, вы уже что-то делаете для выравнивания кривых)
  • затем попробуйте два угла и посмотрите, какой из них даетлучший матч в соответствии с вашей стоимостью соответствия
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...