Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

imbinarize

Imagen en escala de grises Binarize 2-D o volumen 3D por umbral

Descripción

ejemplo

BW = imbinarize(I) crea una imagen binaria a partir de la imagen en escala de grises 2D o 3D reemplazando todos los valores por encima de un umbral determinado globalmente por s y estableciendo todos los demás valores en s.I10 De forma predeterminada, utiliza el método de Otsu, que elige el valor de umbral para minimizar la varianza intraclase de los píxeles en blanco y negro de umbral. utiliza un histograma de imagen de 256 bandejas para calcular el umbral de Otsu.imbinarize[1]imbinarize Para utilizar un histograma diferente, consulte .otsuthresh

ejemplo

BW = imbinarize(I,method) crea una imagen binaria a partir de la imagen utilizando el método de umbral especificado por : o .Imethod'global''adaptive'

BW = imbinarize(I,T) crea una imagen binaria a partir de la imagen utilizando el valor de umbral . puede ser un umbral de imagen global, especificado como un valor de luminancia escalar, o un umbral adaptable localmente, especificado como una matriz de valores de luminancia.ITT

ejemplo

BW = imbinarize(I,'adaptive',Name,Value) crea una imagen binaria a partir de la imagen utilizando pares nombre-valor para controlar aspectos del umbral adaptativo.I

Ejemplos

contraer todo

Lea la imagen en escala de grises en el espacio de trabajo.

I = imread('coins.png');

Convierta la imagen en una imagen binaria.

BW = imbinarize(I);

Muestre la imagen original junto a la versión binaria.

figure imshowpair(I,BW,'montage')

Leer imagen en escala de grises en el espacio de trabajo.

I = imread('rice.png');

Convierta la imagen en escala de grises en imagen binaria.

BW = imbinarize(I, 'adaptive');

Mostrar la imagen original a lo largo de la versión binaria lateral.

figure imshowpair(I,BW,'montage')

Lea una imagen en escala de grises en el espacio de trabajo y muéstrala.

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

Convierta la imagen en una imagen binaria mediante el umbral adaptable. Utilice el parámetro para indicar que el primer plano es más oscuro que el fondo.ForegroundPolarity

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

Mostrar la versión binaria de la imagen.

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

Cargue datos de intensidad en escala de grises 3D en el espacio de trabajo.

load mristack; V = mristack;

Ver el volumen 3D.

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

Convierta el volumen de intensidad en un volumen binario 3D.

J = imbinarize(V);

Vea el volumen binario 3D.

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

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como una imagen en escala de grises 2D o un volumen de escala de grises 3D. espera valores de píxel es de tipo de datos y estar en el intervalo [0, 1].imbinarizedoublesingle Puede utilizar la función para ajustar los valores de píxel al rango esperado.rescale

Nota

interpreta una imagen RGB como una imagen volumétrica en escala de grises y no binarize cada canal por separado.imbinarize Para producir una imagen binaria a partir de una imagen RGB, primero convierta la imagen en una imagen en escala de grises utilizando .rgb2gray

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Método utilizado para la imagen binariza, especificado como uno de los siguientes valores.

Valores

Significado

'global'

Calcule el umbral de imagen global utilizando el método de Otsu. Consulte para obtener más información sobre el método de Otsu.graythresh

'adaptive'

Calcule el umbral de imagen adaptable localmente elegido mediante estadísticas de imagen de primer orden locales alrededor de cada píxel. Consulte para obtener más información.adaptthresh Si la imagen contiene s o s, el comportamiento del método es indefinido.InfNaNimbinarize'adaptive' Es posible que la propagación de s o s no se localice en la vecindad alrededor y píxeles.InfNaNInfNaN

Tipos de datos: char | string

Valor de luminancia de umbral, especificado como una matriz escalar o numérica numérica con valores en el intervalo [0, 1].

  • Si es un escalar numérico, interpreta como un umbral de imagen global.TimbinarizeT Utilice o para calcular un umbral de imagen global.graythreshotsuthresh

  • Si es una matriz numérica, interpreta como un umbral adaptable localmente.TimbinarizeT Se usa para calcular un umbral adaptable localmente.adaptthresh

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: BW = imbinarize(I,'adaptive','Sensitivity',0.4);

Factor de sensibilidad para el umbral adaptativo, especificado como el par separado por comas que consta de y un número en el rango [0, 1].'Sensitivity' Un valor de alta sensibilidad conduce a umbrales de más píxeles como primer plano, a riesgo de incluir algunos píxeles de fondo.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Determine qué píxeles se consideran píxeles de primer plano para el umbral adaptable, especificado como el par separado por comas que consta de y uno de los siguientes valores.'ForegroundPolarity'

Valor

Significado

'bright'

El primer plano es más brillante que el fondo.

'dark'

El primer plano es más oscuro que el fondo

Tipos de datos: char | string

Argumentos de salida

contraer todo

Imagen binaria de salida, devuelta como una matriz lógica o matriz lógica del mismo tamaño que .I

Tipos de datos: logical

Sugerencias

  • Para generar una imagen binaria a partir de una imagen indexada, primero convierta la imagen en una imagen en escala de grises utilizando .ind2gray

Algoritmos

El método binarizla la imagen mediante un umbral adaptable localmente. calcula un umbral para cada píxel utilizando la intensidad media local alrededor de la vecindad del píxel.'adaptive'imbinarize Esta técnica también se llama método de Bradley.[2] El método también utiliza un tamaño de vecindad de aproximadamente 1/8 del tamaño de la imagen (calculado como ).'adaptive'2*floor(size(I)/16)+1 Para usar una estadística local de primer orden diferente o un tamaño de vecindad diferente, consulte .adaptthresh

Referencias

[1] Otsu, N., "A Threshold Selection Method from Gray-Level Histograms." IEEE Transactions on Systems, Man, and Cybernetics. Vol. 9, No. 1, 1979, pp. 62–66.

[2] Bradley, D., G. Roth, "Adapting Thresholding Using the Integral Image," Journal of Graphics Tools. Vol. 12, No. 2, 2007, pp.13–21.

Capacidades ampliadas

Introducido en R2016a