Сохранение «связности» линий в изображении с OpenCV - PullRequest
1 голос
/ 21 января 2020

Я работаю над рукописной проблемой распознавания di git, использующей OpenCV для предварительной обработки и Keras / Tensorflow для вывода. У меня возникла проблема с потерей некоторых функций в предварительной обработке, которая примерно состоит из:

  1. Порог Оцу
  2. Дилатация (чтобы получить толщину ди git то же самое, что и другой набор данных, который я использовал для предварительной тренировки моей нейронной сети пример потери признаков:

    enter image description here

    Это должно быть два, и крошечный пробел в верхнем l oop важен для дифференциации это от 9 или 8. Но моя предварительно обработанная версия теряет пробел, поэтому l oop выглядит закрытым.

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

    Так же, как одна из моих собственных идей: Может быть, есть способ добавить второе большее ядро ​​в операцию расширения. Это ядро ​​будет иметь ту же форму, что и ядро ​​расширения, но будет иметь только контур (не будет заполнено). Затем, если этот контур затрагивает какие-либо белые пиксели на исходном изображении, аннулируйте действие расширения для этой позиции.

    Примечание. Пожалуйста, не стесняйтесь оставлять комментарий, чтобы лучше обозначить этот заголовок ("связность" все, что я мог придумать).

1 Ответ

0 голосов
/ 04 мая 2020

Скелетонизируйте фон первого изображения (см. https://medium.com/analytics-vidhya/skeletonization-in-python-using-opencv-b7fa16867331 или . Есть ли какая-либо встроенная функция, способная выполнять скелетонизацию в openCV? ). Используйте логическую операцию между скелетом и вторым изображением.

...