Этот пример показывает, как сегментировать изображение с помощью Локальной опции Сокращения Графика (известный как grabcut) в приложении Image Segmenter. Как опция Сокращения Графика, Локальное Сокращение Графика является полуавтоматическим методом сегментации, который можно использовать, чтобы сегментировать изображение на фоновые элементы и передний план. С Локальным Сокращением Графика вы сначала чертите видимую область вокруг объекта, который вы хотите сегментировать. Сегменты Image Segmenter изображение автоматически на основе содержимого ROI. Чтобы получить хорошую начальную сегментацию, убедитесь ROI, который вы чертите, полностью окружает объект, оставляя небольшое количество пробела между объектом и контуром ROI. Гарантируйте, что объект полностью в ROI.
Затем как с Сокращением Графика, можно совершенствовать автоматическую сегментацию путем проведения линий, названных scribbles, на изображении в ROI. Линии, которые вы проводите, идентифицируют то, что вы хотите на переднем плане и что вы хотите в фоновом режиме. Локальная опция Сокращения Графика только элементы сегментов в контурах ROI.
Локальный метод Сокращения Графика, подобный методу Сокращения Графика, применяет теорию графов к обработке изображений, чтобы достигнуть быстрой сегментации. Алгоритм создает график изображения, где каждый пиксель является узлом, соединенным взвешенными ребрами. Чем выше вероятность, что пиксели связаны, тем выше вес. Алгоритм сокращает вдоль слабых ребер, достигая сегментации объектов в изображении. Для получения информации о методе Сокращения Графика смотрите, что Сегментация Использует Сокращение Графика Image Segmenter.
Считайте изображение в рабочую область MATLAB® и загрузите ее в Image Segmenter. Для получения дополнительной информации о загрузке изображений в приложение, смотрите Открытое Изображение Приложения и Загрузки Image Segmenter.
car = imread('car2.jpg');
imageSegmenter(car)
Выберите Local Graph Cut в разделе Add to Mask панели инструментов. Можно расширить эту группу, чтобы видеть все доступные опции.
Как первый шаг, чертите ROI вокруг объекта в изображении, которое вы хотите сегментировать. Когда Image Segmenter открывает вкладку Local Graph Cut, кнопка Draw ROI включена. Расположите курсор над изображением и чертите ROI, который охватывает целый объект, который вы хотите сегментировать. Чтобы получить хорошую начальную сегментацию, убедитесь ROI, который вы чертите, полностью окружает объект, оставляя небольшое количество пробела между объектом и контуром ROI. Убедитесь объект, который вы хотите сегментировать, полностью в ROI.
Можно принять решение чертить прямоугольник или ROI полигона. Используйте меню ROI Style, чтобы выбрать. Чтобы чертить прямоугольник, расположите курсор над изображением и затем перетащите. Чтобы чертить полигон, перетащите мышь, создайте вершину в каждом нажатии кнопки. Дважды кликните, чтобы закончить полигон. Как только вы закончили ROI, сегменты Image Segmenter объект в ROI. Если вы не удовлетворены формой, вы чертили, можно всегда редактировать ее. Щелкните правой кнопкой по ROI и выберите Delete.
Затем, чертите каракули, чтобы отметить любые части переднего плана, которые не были включены в автоматическую сегментацию. После того, как вы будете чертить ROI, Image Segmenter активирует кнопку Mark Foreground автоматически. Используя мышь, проведите линии, чтобы идентифицировать части изображения, что вы хотите быть включенными в передний план.
Продолжите путем маркировки элементов, что вы хотите быть частями фона. Нажмите Mark Background и проведите линии в ROI, чтобы идентифицировать, какие части являются фоном. Можно обрезать части автоматической сегментации, которая должна быть частью фона, чертя линию через них.
Когда вы будете удовлетворены сегментацией, нажмите Apply. Image Segmenter изменяет цвет сегментированной части изображения к желтому.
Чтобы просмотреть рисунок маски, нажмите Show Binary. Можно также просмотреть бинарный рисунок маски в основной вкладке Segmentation. Чтобы возвратиться к основному приложению Image Segmenter, нажмите Close Local Graph Cut.
По окончании, сегментировав изображение, можно сохранить бинарную маску, с помощью опции Export. Можно также получить код, используемый для сегментации. Для получения дополнительной информации о сохранении рисунка маски, смотрите, Сохраняют Рисунок маски, Созданный Используя Image Segmenter.