Обработка изображений в MATLAB - Как повысить точность нахождения алгоритмов округлости? - - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть изображение архитектурного строительного проекта с tif-файлом. На изображении есть несколько четвертей, представляющих двери. Я попытался реализовать функции imfindcircles и regionprops (с эксцентриситетом) в Matlab. Но, к сожалению, функции не дали нам эффективных решений, как некоторые круги не могли найти, а некоторые считают, что в этих местах нет кругов. Есть ли другая идея или решение? Я также приложил свое изображение с файлом JPG. Спасибо ...

https://imgur.com/a/f0r56fr

1 Ответ

0 голосов
/ 25 апреля 2020

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

Вот мои рекомендации:

  • сужение краев до одного пикселя width;

  • используйте алгоритм следования контуру, чтобы проследить края и остановиться на стыках (соединение - это то, где пиксель имеет более двух соседей) или под углами (резкое изменение направление);

  • определить изогнутые края (возьмите три разнесенные точки и обратите внимание, что они отклоняются от линии);

  • оценить центр и радиус (вы можете повторить с большим количеством троек для проверки округлости);

  • сохраните части, совместимые с ожидаемым радиусом;

  • проверьте, если соседние фигуры (круглые или короткие сегменты) совместимы с глобальным кругом и объединяют их.

В крайних случаях дуги можно разбить на множество коротких кусков. Чтобы справиться с этим, вы можете обнаружить «цепочки» коротких сегментов и проверить их на совместность.

...