imbinarize

Binarize 2D полутоновое изображение или 3-D объем пороговой обработкой

Описание

пример

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

пример

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

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

пример

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

Примеры

свернуть все

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

I = imread('coins.png');

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

BW = imbinarize(I);

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

figure
imshowpair(I,BW,'montage')

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

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

I = imread('rice.png');

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

BW = imbinarize(I, 'adaptive');

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

figure
imshowpair(I,BW,'montage')

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

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

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

Figure contains an axes object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object contains 3 objects of type surface.

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

свернуть все

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

Примечание

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

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

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

Значения

Значение

'global'

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

'adaptive'

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

Типы данных: 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 имя аргумента и 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.

Типы данных: логический

Советы

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

Алгоритмы

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

Ссылки

[1] Оцу, N., "Пороговый Метод выбора от Гистограмм Уровня серого". Транзакции IEEE в Системах, Человеке и Кибернетике. Издание 9, № 1, 1979, стр 62–66.

[2] Брэдли, D., Г. Рот, "Адаптируя Пороговую обработку Используя Интегральное Изображение", Журнал Графических Инструментов. Издание 12, № 2, 2007, pp.13-21.

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

Смотрите также

| | |

Введенный в R2016a