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

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

Descripción

ejemplo

BW = imbinarize(I) crea una imagen binaria a partir de una imagen en escala de grises en 2-D o 3-D reemplazando todos los valores por encima de un umbral determinado globalmente con 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 256-bin 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 los aspectos del umbral adaptativo.I

Ejemplos

contraer todo

Leer 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);

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

figure imshowpair(I,BW,'montage')

Leer imagen en escala de grises en 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 mostrarla.

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

Convierta la imagen a una imagen binaria utilizando el umbral adaptativo. 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);

Visualice la versión binaria de la imagen.

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

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

load mristack; V = mristack;

Ver el volumen 3-D.

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 3-D.

J = imbinarize(V);

Ver el volumen binario 3-D.

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 en 2-D o un volumen de escala de grises 3D. espera valores de píxel 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 intervalo esperado.rescale

Nota

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

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

Método utilizado para binarizar la imagen, especificada como uno de los siguientes valores.

Valores

Significado

'global'

Calcule el umbral de la 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 utilizando las estadísticas de imagen de primer orden locales alrededor de cada píxel. Ver para más detalles.adaptthresh Si la imagen contiene s o s, el comportamiento del método es indefinido.InfNaNimbinarize'adaptive' La propagación de s o s puede no estar localizada 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, se interpreta como un umbral de imagen global.TimbinarizeT Utilice o para calcular un umbral de imagen global.graythreshotsuthresh

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

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

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.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 intervalo [0,1].'Sensitivity' Un valor de alta sensibilidad conduce a que el umbral de más píxeles se mantenga en 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 uno de los siguientes valores y otro de ellos.'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 a una imagen en escala de grises utilizando.ind2gray

Algoritmos

El método binariza la imagen utilizando un umbral adaptativo 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/8th 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, vea.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