Сегментация изображения с использованием локальной графической вырезки (Grabcut) в Image Segmenter

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

Затем, как и в случае с графическим вырезом, вы уточняете автоматическую сегментацию путем рисования линий, называемых scribbles, на изображении в информация только для чтения. Линии, которые вы рисуете, определяют, что вы хотите в переднем плане и что вы хотите в фоновом режиме. Опция Локальный вырез графика (Local Graph Cut) сегментирует только элементы в контурах информация только для чтения.

Метод Local Graph Cut, подобный технике Graph Cut, применяет теорию графика к обработке изображений для достижения быстрой сегментации. Алгоритм создает график изображения, где каждый пиксель является узлом, соединенным взвешенными ребрами. Чем выше вероятность того, что пиксели связаны, тем выше вес. Алгоритм разрезает по слабым ребрам, добиваясь сегментации объектов на изображении. Для получения информации о технике графической вырезки смотрите раздел «Сегментное изображение с использованием графической вырезки в Image Segmenter».

Загрузка изображения в приложение Image Segmenter

Чтение изображения в рабочую область.

car = imread('car2.jpg');

В MATLAB ® Toolstrip откройте приложение Image Segmenter. На вкладке Apps, в разделе Image Processing and Компьютерное Зрение, нажмите Image Segmenter.

На панели инструментов приложения щелкните Загрузка изображения, а затем выберите Загрузка изображения из рабочей области. В диалоговом окне Импорт из рабочей области выберите изображение, считанное в рабочую область. В приложении Image Segmenter отображается выбранное изображение.

Вы также можете открыть приложение, используя imageSegmenter команда, задающая имя переменной изображения.

imageSegmenter(b);

Используйте локальный график (Grabcut) для сегментации изображения

На приложении Segmenter выберите Local Graph Cut.

Приложение Image Segmenter открывает новую вкладку для сегментации Локальный граф (Local Graph Cut). В качестве первого шага в сегментации Локальный граф (Local Graph Cut) нарисуйте информация только для чтения вокруг объекта в изображении, которое вы хотите сегментировать. Когда приложение Image Segmenter открывает вкладку Local Graph Cut, оно предварительно выбирает кнопку Draw ROI. Наведите курсор на изображение и нарисуйте информация только для чтения, который охватывает весь объект, который вы хотите сегментировать. Чтобы получить хорошую начальную сегментацию, убедитесь, что информация только для чтения, который вы рисуете, полностью окружает объект, оставляя небольшое количество пространства между объектом и контуром информация только для чтения. Убедитесь, что объект, который вы хотите сегментировать, полностью находится в информация только для чтения.

Можно принять решение нарисовать прямоугольный или полигональный информация только для чтения. Для выбора используйте меню « информацию только для чтения». Чтобы нарисовать прямоугольник, наведите курсор на изображение, а затем щелкните и перетащите мышью. Чтобы нарисовать многоугольник, щелкните и перетащите мышь, создавая вершину при каждом нажатии кнопки. Дважды кликните, чтобы закончить многоугольник. Если вы не удовлетворены фигурой, которую вы нарисовали, вы всегда можете редактировать ее. Щелкните правой кнопкой мыши информация только для чтения и выберите Удалить.

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

Чтобы уточнить автоматическую сегментацию, нарисуйте линии (scribbles), чтобы пометить любые части переднего плана, которые не были включены в автоматическую сегментацию. После того, как вы нарисовали информация только для чтения, Image Segmenter автоматически выбирает кнопку Mark Forground.

Чтобы удалить области из сегментации, не являющиеся частью переднего плана, пометьте эти области как фон. Выберите опцию «Пометить фон» и нарисуйте линии внутри информация только для чтения, чтобы идентифицировать части сегментации, которые должны быть в фоновом режиме.

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

Просмотр бинарного изображения и сохранение маски

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

После сегментации изображения можно сохранить двоичную маску с помощью опции Экспорт (Export). Можно также получить код, используемый для сегментации.

См. также

|

Похожие темы