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')

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

I = imread('rice.png');

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

BW = imbinarize(I, 'adaptive');

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

figure
imshowpair(I,BW,'montage')

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

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

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

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

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

figure
imshow(BW)
title('Binary Version of 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

Преобразуйте объем интенсивности в 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

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

свернуть все

Введите изображение, заданное как 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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