stringtranslate.com

barrio de moore

El barrio de Moore se compone de nueve celdas: una celda central y las ocho celdas que la rodean.

En los autómatas celulares , la vecindad de Moore se define sobre una red cuadrada bidimensional y está compuesta por una celda central y las ocho celdas que la rodean.

Nombre

El barrio lleva el nombre de Edward F. Moore , un pionero de la teoría de los autómatas celulares.

Importancia

Es uno de los dos tipos de barrio más utilizados, siendo el otro el barrio de von Neumann , que excluye las celdas de las esquinas. El conocido Juego de la vida de Conway , por ejemplo, utiliza el barrio de Moore. Es similar a la noción de 8 píxeles conectados en los gráficos por computadora .

La vecindad de Moore de una celda es la celda misma y las celdas a una distancia de Chebyshev de 1.

El concepto se puede extender a dimensiones superiores, por ejemplo formando una vecindad cúbica de 26 celdas para un autómata celular en tres dimensiones, como lo utiliza 3D Life . En la dimensión d, donde , el tamaño de la vecindad es 3 d  − 1.

En dos dimensiones, el número de celdas en una vecindad extendida de Moore de rango r es (2 r  + 1) 2 .

Algoritmo

La idea detrás de la formulación de la vecindad de Moore es encontrar el contorno de una gráfica dada. Esta idea fue un gran desafío para la mayoría de los analistas del siglo XVIII y, como resultado, se derivó un algoritmo a partir del gráfico de Moore que más tarde se denominó algoritmo de Moore Neighborhood.

El pseudocódigo para el algoritmo de rastreo de Moore-Neighbor es

Entrada : una teselación cuadrada, T, que contiene un componente conectado P de celdas negras.Salida : una secuencia B (b1, b2, ..., bk) de píxeles límite, es decir, el contorno.Defina M(a) como la vecindad de Moore del píxel a.Sea p el píxel límite actual.Sea c el píxel actual bajo consideración, es decir, c está en M(p).Sea b el retroceso de c (es decir, el píxel vecino de p que se probó previamente) Comience  a configurar B para que esté vacío. De abajo hacia arriba y de izquierda a derecha, escanee las celdas de T hasta encontrar un píxel negro, s, de P. Inserte s en B. Establezca el punto límite actual p en s, es decir, p=s. Sea b = el píxel desde el cual se ingresó s durante el escaneo de la imagen. Establezca c como el siguiente píxel en el sentido de las agujas del reloj (desde b) en M(p). Mientras c no sea igual a s, si c es negro inserte c en B Sea b = p Sea p = c (retroceder: mueva el píxel actual c al píxel desde el cual se ingresó p)  Sea c = siguiente píxel en el sentido de las agujas del reloj (desde b) en M(p). de lo contrario  (avanzar el píxel actual c al siguiente píxel en el sentido de las agujas del reloj en M(p) y actualizar el retroceso)  Sea b = c Sea c = siguiente píxel en el sentido de las agujas del reloj (desde b) en M(p). terminar si  terminar mientras terminar

Condición de terminación

La condición de terminación original era detenerse después de visitar el píxel de inicio por segunda vez. Esto limita completamente el conjunto de contornos que recorrerá el algoritmo. Una condición de parada mejorada propuesta por Jacob Eliosoff es detenerse después de ingresar el píxel de inicio por segunda vez en la misma dirección en la que lo ingresó originalmente.

Ver también

Referencias