Сегментация Используя сокращение графика Image Segmenter

Этот пример показывает, как использовать опцию Сокращения Графика в приложении Image Segmenter, чтобы сегментировать изображение. Сокращение графика является полуавтоматическим методом сегментации, который можно использовать, чтобы сегментировать изображение на фоновые элементы и передний план. Сегментация сокращения графика не требует хорошей инициализации. Вы проводите линии на изображении, названном scribbles, чтобы идентифицировать то, что вы хотите на переднем плане и что вы хотите в фоновом режиме. Сегменты Image Segmenter изображение автоматически на основе ваших каракулей и отображений сегментированное изображение. Можно совершенствовать сегментацию путем рисования большего количества каракулей на изображении, пока вы не удовлетворены результатом.

Метод Сокращения Графика применяет теорию графов к обработке изображений, чтобы достигнуть быстрой сегментации. Метод создает график изображения, где каждый пиксель является узлом, соединенным взвешенными ребрами. Чем выше вероятность, что пиксели связаны, тем выше вес. Алгоритм сокращает вдоль слабых ребер, достигая сегментации объектов в изображении. Image Segmenter использует особое разнообразие алгоритма Сокращения Графика под названием lazysnapping. Для получения информации о другом методе сегментации, который связан с сокращением графика, смотрите, что Сегментация Использует Локальное Сокращение Графика (Grabcut) в Image Segmenter.

Считайте изображение в рабочую область MATLAB® и загрузите ее в приложение Image Segmenter. Для получения дополнительной информации об открытии приложения Image Segmenter и загрузке изображения, смотрите Открытое Изображение Приложения и Загрузки Image Segmenter.

b = imread('baby.jpg');
imageSegmenter(b)

Расширьте Создать группу панели инструментов Маски и нажмите Graph Cut. Приложение Image Segmenter открывает вкладку Graph Cut.

Как первый шаг, необходимо отметить элементы изображения, что вы хотите быть на переднем плане. (Когда Сокращение Графика открывается, опция Mark Foreground предварительно выобрана.) Отмечание объекта просто чертит линию (также названный scribble) по объекту. Когда вы будете чертить линию, попытайтесь включать все различные значения в объект. Можно провести столько отдельных линий, сколько вам нравится. Если вы не удовлетворены строками, вы чертите, можно всегда редактировать их. Нажмите Erase и переместите курсор через любую часть строки, которую вы хотите удалить. Если вы провели много линий и хотите запуститься, нажмите Clear Markings.

Затем, отметьте элементы изображения, которым вы хотите быть в фоновом режиме. Снова, просто чертите линию по изображению. Когда вы закончили разграничивать, Image Segmenter сразу выполняет сегментацию (отображенный синим).

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

Чтобы получить лучший взгляд на сегментацию, нажмите Show Binary.

Когда вы будете удовлетворены сегментацией, нажмите Create Mask. Image Segmenter закрывает вкладку Graph Cut. Можно использовать инструменты в Том, чтобы совершенствовать группу панели инструментов Маски, чтобы усовершенствовать рисунок маски, такой как Морфология и Активные Контуры. Чтобы сохранить рисунок маски, нажмите Export. Можно также использовать опцию Экспорта, чтобы получить код, используемый для сегментации. Для получения дополнительной информации о сохранении рисунка маски, смотрите, Сохраняют Рисунок маски, Созданный Используя Image Segmenter.

Смотрите также

|

Похожие темы