Я работаю над проектом распознавания отпечатков пальцев, но мне нужно предварительно обработать изображение. Я перехожу к следующему процессу.Способ заполнения отверстий любого размера
1) бинаризации
2) фильтрование, чтобы удаление эффекта "ступенчатый"; т.е. сглаживание
3) Тонкие линии
Я добавляю в шаг, который я пытаюсь развить, что будет заполнить все отверстия, которые остались после прореживания. Я пытаюсь сделать это следующим образом.
4a) Используйте bwlabel
, чтобы найти регионы (я мог бы подумать об использовании bwmorp(...,'shrink')
, чтобы просто оставить «капли», но это немного уменьшает размер капли).
4б) Найти все регионы, которые не имеют максимальную площадь
4с) Используйте расположение этих областей, чтобы уменьшить эти «сгустки» в точках.
Но как я могу применить усадку в указанных местах?
бинаризации
Фильтрация
Разбавление
Отверстие заполнения
Хорошо, что я на самом деле хотел бы сделать, это не просто заполнить отверстия, но и сжать отверстия до точки. Как вы можете видеть в изображении, заполненном отверстием выше, у меня есть куча этих маленьких отверстий, заполненных. Я хочу иметь возможность применить сжатие к этим областям и сжать их до определенной точки. Затем замените заполненные отверстия этой вновь созданной точкой.Проблема, с которой я сталкиваюсь, заключается в том, чтобы обрезать хребты, чтобы просто покинуть заполненные области, избегая при этом эрозии заполненных областей (если бы я использовал эрозию, гряды исчезли, но также уменьшили размер области). – roldy
Попробуйте это. После выполнения 'bwlabel', заполните каждое отверстие отдельно, а затем используйте' bwmorph (image, 'remove') 'или' bwmorph (image, 'skeleton') ', что вам подходит. Повторите эту процедуру для каждого отверстия (например, метки). Чрезвычайно неэффективен, но на данный момент я не могу думать ни о чем другом. –