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.

Operaciones de tabla de búsqueda

Creación de una tabla de búsqueda

Ciertas operaciones de imagen binaria se pueden implementar más fácilmente a través de tablas de búsqueda. Una tabla de búsqueda es un vector de columna en el que cada elemento representa el valor que se va a devolver para una posible combinación de píxeles en una vecindad. Para crear tablas de búsqueda para varias operaciones, utilice la función. crea tablas de búsqueda para 2 por 2 y 3 por 3 barrios.makelutmakelut La figura siguiente ilustra estos tipos de vecindades. Cada píxel de vecindad se indica mediante una x, y el píxel central es el que tiene un círculo.

Para una vecindad de 2 por 2, hay 16 permutaciones posibles de los píxeles en la vecindad. Por lo tanto, la tabla de búsqueda para esta operación es un vector de 16 elementos. Para una vecindad de 3 por 3, hay 512 permutaciones, por lo que la tabla de búsqueda es un vector de 512 elementos.

Nota

y apoyar sólo 2 por 2 y 3 por 3 vecindarios.makelutapplylut Las tablas de búsqueda más grandes que 3 por 3 vecindarios no son prácticas. Por ejemplo, una tabla de búsqueda para una vecindad 4 por 4 tendría 65.536 entradas.

Uso de una tabla de búsqueda

Una vez creada una tabla de búsqueda, puede usarla para realizar la operación deseada mediante la función.applylut

En el ejemplo siguiente se muestra el uso de operaciones de tabla de búsqueda para modificar una imagen que contiene texto. En el ejemplo se crea una función anónima que devuelve 1 si tres o más píxeles de la vecindad 3 por 3 son 1; de lo contrario, devuelve .0 A continuación, el ejemplo llama a , pasando esta función como primer argumento y utilizando el segundo argumento para especificar una tabla de búsqueda 3 por 3.makelut

f = @(x) sum(x(:)) >= 3; lut = makelut(f,3);

se devuelve como un vector de 512 elementos de 1 y 0.lut Cada valor es la salida de la función para una de las 512 permutaciones posibles.

A continuación, realice la operación utilizando .applylut

BW1 = imread('text.png');  BW2 = applylut(BW1,lut); imshow(BW1) figure, imshow(BW2)

Imagen antes y después de aplicar la operación de tabla de búsqueda

Para obtener información sobre cómo asigna las combinaciones de píxeles de la imagen a las entradas de la tabla de búsqueda, consulte la página de referencia de .applylutapplylut