imbinarize

Бинаризируйте 2-D полутоновое изображение или 3-D объем с помощью порогового значения

Описание

пример

BW = imbinarize(I) создает бинарное изображение из 2-D или 3-D полутонового изображения I путем замены всех значений выше глобально определенного порога на 1s и установка всех других значений на 0s. По умолчанию imbinarize использует метод Оцу, который выбирает пороговое значение, чтобы минимизировать внутриклассовое отклонение пороговых черно-белых пикселей [1]. imbinarize использует гистограмму изображения 256 бин, чтобы вычислить порог Оцу. Чтобы использовать другую гистограмму, см. otsuthresh.

пример

BW = imbinarize(I,method) создает бинарное изображение из изображения I используя метод порогового значения, заданный как method: 'global' или 'adaptive'.

BW = imbinarize(I,T) создает бинарное изображение из изображения I использование порогового значения T. T может быть глобальным порогом изображения, заданным как скалярное значение яркости, или локально адаптивным порогом, заданным как матрица значений яркости.

пример

BW = imbinarize(I,'adaptive',Name,Value) создает бинарное изображение из изображения I использование пар "имя-значение" для управления аспектами адаптивного порога.

Примеры

свернуть все

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

I = imread('coins.png');

Преобразуйте изображение в бинарное изображение.

BW = imbinarize(I);

Отображение оригинального изображения рядом с двоичной версией.

figure
imshowpair(I,BW,'montage')

Figure contains an axes. The axes contains an object of type image.

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

I = imread('rice.png');

Преобразуйте полутоновое изображение в бинарное изображение.

BW = imbinarize(I, 'adaptive');

Отобразите оригинальное изображение вдоль боковой двоичной версии.

figure
imshowpair(I,BW,'montage')

Figure contains an axes. The axes contains an object of type image.

Прочтите полутоновое изображение в рабочую область и отобразите его.

I = imread('printedtext.png');
figure
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

Преобразуйте изображение в бинарное изображение с помощью адаптивного порога. Используйте ForegroundPolarity параметр, указывающий, что передний план темнее, чем фон.

BW = imbinarize(I,'adaptive','ForegroundPolarity','dark','Sensitivity',0.4);

Отобразите двоичную версию изображения.

figure
imshow(BW)
title('Binary Version of Image')

Figure contains an axes. The axes with title Binary Version of Image contains an object of type image.

Загрузите 3-D данные интенсивности полутонового цвета в рабочую область.

load mristack;
V = mristack;

Просмотр тома 3-D.

figure
slice(double(V),size(V,2)/2,size(V,1)/2,size(V,3)/2)
colormap gray 
shading interp

Figure contains an axes. The axes contains 3 objects of type surface.

Преобразуйте объем интенсивности в 3-D двоичный объем.

J = imbinarize(V);

Просмотрите 3-D двоичный том.

figure
slice(double(J),size(J,2)/2,size(J,1)/2,size(J,3)/2)
colormap gray 
shading interp

Figure contains an axes. The axes contains 3 objects of type surface.

Входные параметры

свернуть все

Входное изображение, заданное как 2-D изображение в полутоне или 3-D объем в полутоне. imbinarize ожидает пиксельные значения типа данных double и single находиться в области значений [0, 1]. Вы можете использовать rescale функция для корректировки значений пикселей к ожидаемой области значений.

Примечание

imbinarize интерпретирует изображение RGB как объемное полутоновое изображение и не двоизирует каждый канал отдельно. Чтобы создать бинарное изображение из изображения RGB, сначала преобразуйте изображение в полутоновое изображение, используя rgb2gray.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

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

Значения

Значение

'global'

Вычислите глобальный порог изображения с помощью метода Otsu. Посмотрите graythresh для получения дополнительной информации о методе Оцу.

'adaptive'

Вычислите локально адаптивный порог изображения, выбранный с использованием локальной статистики изображений первого порядка вокруг каждого пикселя. Посмотрите adaptthresh для получения дополнительной информации. Если изображение содержит Infs или NaNs, поведение imbinarize для 'adaptive' метод не определен. Распространение Infs или NaNs может быть не локализовано по соседству Inf и NaN пиксели.

Типы данных: char | string

Пороговое значение яркости, заданное как числовой скаляр или числовой массив со значениями в области значений [0, 1].

  • Если T является числовым скаляром, тогда imbinarize интерпретирует T как глобальный порог изображения. Использовать graythresh или otsuthresh для вычисления глобального порога изображения.

  • Если T является числовым массивом, тогда imbinarize интерпретирует T как локально адаптивный порог. Использовать adaptthresh для вычисления локально адаптивного порога.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: BW = imbinarize(I,'adaptive','Sensitivity',0.4);

Коэффициент чувствительности для адаптивного порога, заданный как разделенная разделенными запятой парами, состоящая из 'Sensitivity' и число в области значений [0, 1]. Высокое значение чувствительности приводит к установке большего количества пикселей в качестве переднего плана с риском включения некоторых фоновых пикселей.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Определите, какие пиксели считаются пикселями переднего плана для адаптивного порога, заданными как разделенная разделенными запятой парами, состоящая из 'ForegroundPolarity' и одно из следующих значений.

Значение

Значение

'bright'

Передний план ярче фона.

'dark'

Передний план темнее, чем фон

Типы данных: char | string

Выходные аргументы

свернуть все

Вывод бинарного изображения, возвращенный как логическая матрица или логический массив того же размера, что и I.

Типы данных: logical

Совет

  • Чтобы создать бинарное изображение из индексированного изображения, сначала преобразуйте изображение в полутоновое изображение, используя ind2gray.

Алгоритмы

The 'adaptive' метод бинаризирует изображение с помощью локально адаптивного порога. imbinarize вычисляет порог для каждого пикселя, используя локальную среднюю интенсивность вокруг окрестности пикселя. Этот метод также называется методом Брэдли [2]. The 'adaptive' метод также использует размер окрестности приблизительно 1/8 от размера изображения (вычисляется как 2*floor(size(I)/16)+1). Чтобы использовать другую локальную статистику первого порядка или другой размер района, см. adaptthresh.

Ссылки

[1] Otsu, N., «Метод выбора порога из гистограмм серого уровня». Транзакции IEEE по системам, человеку и кибернетике. Том 9, № 1, 1979, с. 62-66.

[2] Bradley, D., G. Roth, «Adapting Thresholding Using the Integral Image», Journal of Graphics Tools. Том 12, № 2, 2007, стр. 13-21.

Расширенные возможности

..
Введенный в R2016a
Для просмотра документации необходимо авторизоваться на сайте