exponenta event banner

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.

Алгоритмы

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

Ссылки

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

[2] Брэдли, Д., Г. Рот, «Адаптация порогов с использованием интегрального изображения», Журнал графических инструментов. Том 12, № 2, 2007, стр.13-21.

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

..
Представлен в R2016a