imbinarize

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

Синтаксис

BW = imbinarize(I)
BW = imbinarize(I,method)
BW = imbinarize(I,T)
BW = imbinarize(I,'adaptive',Name,Value)

Описание

пример

BW = imbinarize(I) создает двухуровневое изображение из 2D или 3-D полутонового изображения I, заменяя все значения выше глобально решительного порога с 1 s и устанавливая все другие значения к 0 s. По умолчанию 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')

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

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 для деталей. Если изображение содержит Inf s или NaN s, поведение imbinarize для метода 'adaptive' не определено. Распространение Inf s или NaN s не может быть локализовано к окружению вокруг пикселей NaN и Inf.

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