Сегментируйте изображение в передний план и фон с помощью итерационной сегментации на основе графа
сегментирует изображение с помощью пар "имя-значение", чтобы управлять аспектами сегментации.BW
= grabcut(___,Name,Value
)
Для double
и single
изображения, grabcut
принимает область значений изображений, который будет [0 1]
. Для uint16
, int16
, и uint8
изображения, grabcut
принимает, что область значений является полной областью значений для заданного типа данных.
Для полутоновых изображений размер L
, foremask
, и backmask
должен совпадать с размером изображения A
. Для цветных и многоканальных изображений, L
, foremask
, и backmask
должны быть 2-D массивы с первыми двумя размерностями, идентичными первым двум размерностям изображения A
.
Алгоритм обрабатывает все субрегионы полностью или пространственно вне маски ROI как принадлежащие фону. Чтобы получить оптимальную сегментацию, убедитесь, что объект, который будет сегментирован, полностью содержится в информация только для чтения, окруженном небольшим количеством фоновых пикселей.
Не помечайте субрегион матрицы меток как принадлежащий маске переднего плана и маске фона. Если область матрицы меток содержит пиксели, принадлежащие маске переднего плана и маске фона, алгоритм эффективно обрабатывает область как немаркированную.
Алгоритм предполагает, что все субрегионы за пределами необходимой области принадлежат фону. Пометка одного из этих субрегионов как принадлежащего переднему плану или маске фона не влияет на полученную сегментацию.
[1] Rother, C., В. Колмогоров и А. Блейк. «GrabCut - интерактивное извлечение переднего плана с использованием итерационных Графиков вырезов». Транзакции ACM на графике (SIGGRAPH). Том 23, № 3, 2004, стр. 309-314.