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 2-d o volumen tridimensional al umbralar

Sintaxis

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

Descripción

ejemplo

BW = imbinarize(I) crea una imagen binaria a partir de la imagen I sustituyendo todos los valores por encima de un umbral determinado globalmente con 1s y estableciendo todos los demás valores en 0s. De forma predeterminada, imbinarize utiliza el método de Otsu, que elige el valor de umbral para minimizar la varianza intraclase de los [1]de píxeles blancos y negros umbrales. imbinarize utiliza un histograma de imagen de 256-bin para calcular el umbral de Otsu. Para utilizar un histograma diferente, consulte otsuthresh. BW es la imagen binaria de salida.

ejemplo

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

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

ejemplo

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

ejemplo

J = imbinarize(V,___) binarizes Volume V, utilizando los mismos valores predeterminados que la sintaxis para las imágenes en escala de grises. imbinarize soporta conversión binaria tridimensional para umbrales globales y adaptativos. J es el volumen binario de salida.

Ejemplos

contraer todo

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

I = imread('coins.png');

Convertir la imagen en una imagen binaria.

BW = imbinarize(I);

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

figure imshowpair(I,BW,'montage')

Lea la imagen de escala de grises en Workspace.

I = imread('rice.png');

Convertir imagen de escala de grises a imagen binaria.

BW = imbinarize(I, 'adaptive');

Mostrar 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 en una imagen binaria mediante el umbral de adaptación. Utilice el parámetro ForegroundPolarity para indicar que el primer plano es más oscuro que el fondo.

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

Muestra 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;

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

Visualice 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 escala de grises de entrada, especificada como una matriz de 2-D real, no Sparse.

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

Método utilizado para binarize la imagen, especificada como uno de los siguientes valores (los nombres pueden abreviarse).

Valores

Significado

'global'

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

'adaptive'

Calcule el umbral de imagen adaptable localmente elegido utilizando estadísticas de imagen de primer orden locales alrededor de cada píxel. Consulte adaptthresh para obtener más información. Si la imagen contiene Infs o NaNs, el comportamiento de imbinarize para el método 'adaptive' es indefinido. La propagación de Infs o NaNs no se puede localizar en el vecindario alrededor de Inf y NaN píxeles.

Tipos de datos: char | string

Umbral, especificado como valor de luminancia escalar o como una matriz de valores de luminancia. Si T es un valor de luminancia escalar, imbinarize lo interpreta como un umbral de imagen global. Si T es una matriz de valores de luminancia, imbinarize la interpreta como un umbral de adaptación local. T debe tener un valor entre 0 y 1. Si T es una matriz, debe tener el mismo tamaño que I. Utilice las funciones graythresh, otsuthresho adaptthresh para calcular T.

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

Volumen de entrada, especificado como un array real, no Sparse, 3-D.

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

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos Name,Value . Name es el nombre del argumento y Value es el valor correspondiente. Name debe aparecer dentro de comillas simples (' '). 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 un valor en el intervalo [0,1]. Un alto valor de sensibilidad conduce a la umbralización de más píxeles como primer plano, con el 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, especificados como cualquiera de los siguientes valores:

Valores

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 del mismo tamaño que I.

Volumen binario de salida, devuelto como una matriz lógica del mismo tamaño que V.

Sugerencias

  • Para producir una imagen binaria a partir de una imagen indexada, primero convierta la imagen a una imagen de intensidad de escala de grises usando ind2gray.

  • Para producir una imagen binaria a partir de una imagen RGB, primero convierta la imagen a una imagen de intensidad de escala de grises usando rgb2gray.

  • imbinarize espera que las imágenes de punto flotante sean normalizadas en la gama [0,1].

Algoritmos

El método 'adaptive' binarizes la imagen mediante un umbral de adaptación local. imbinarize calcula un umbral para cada píxel utilizando la intensidad media local alrededor del vecindario del píxel. Esta técnica también se llama método de Bradley [2]. El método 'adaptive' también utiliza un tamaño de vecindario de aproximadamente 1/8 del tamaño de la imagen (calculado como 2*floor(size(I)/16)+1). Para utilizar una estadística local de primer orden diferente o un tamaño de vecindario 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