Всем здравствуйте,

У меня есть изображение (original.png), которое мне нужно для разделения областей, где есть и нет этих белых точек. Окончательное изображение должно выглядеть примерно так (final.png).

Я пробовал играть с некоторыми функциями обработки изображений, но из-за того, что промежутки между точками настолько велики по сравнению с размером точек, я не могу найти эффективный способ заполнить промежутки.

Оригинал

Финал

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Есть по крайней мере четыре способа, которые я могу придумать. Один из них — imclose() с действительно большим ядром — достаточно большим, чтобы точки соединились. Затем используйте bwboundaries, чтобы найти «конверт».

Второй способ — использовать альфа-формы. В файловом обмене есть заявки на альфа-формы, а также на змеи, активные контуры, воздушные шары или как бы вы их ни называли.

Третий способ — использовать «ограниченную» выпуклую оболочку — то, что я годами пытался добавить в Mathworks. У меня есть неэффективная демонстрация этого, если вам интересно. По сути, это похоже на выпуклый корпус, но он смотрит только на определенное расстояние, чтобы найти выпуклые точки, поэтому он больше проникает в маленькие отсеки, укромные уголки и трещины. Таким образом, вы получите что-то вроде того, что вы показали красной линией, тогда как стандартный выпуклый корпус — это то же самое, что вы обмотали резинкой вокруг точек, чтобы у вас не было следа точек в отсеки.

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ