arrays - how - processing array of lines
Valores de imagen de cuadrĂcula 2D a matriz 2D (1)
Tengo una imagen que contiene una cuadrícula 2D como la imagen a continuación que quiero poner en una matriz en este formato:
;x = wall(black cells and grey boxes), s= start (red circle), g = goal(blue circle), 0 = available path(everything else)
$data[5][5] = [["x","x","x","x","x"], _
["x","s","0","x","x"], _
["x","x","0","x","x"], _
["x","x","0","g","x"], _
["x","x","x","x","x"]]
¿Alguna idea de cómo podría hacer eso? Cualquier cosa sería útil. Pensé que podría usar los colores, pero no estoy muy seguro de cómo hacer esto.
Soy nuevo en AutoIt, así que avíseme si necesito agregar algo.
parece que tienes la vista con ángulos fijos
crear una función que convierta la posición de la pantalla a la posición de la cuadrícula y viceversa. Debería ser fácil solo
2x
interpolación lineal. si la panorámica de la cámara no está en el paso basado en la celda, entonces necesita el punto de esquina de las líneas de la cuadrícula y usarlo como punto de inicio ...por ejemplo algo como esto (espero haber medido los píxeles correctamente):
x = 236 + (+(u-uh)-(v-vh))*60; y = 133 + (-(u-uh)-(v-vh))*30;
-
60,30
es el tamaño de celda enx,y
-
(236,133)
es la posición del centro de la mitad de la celda(uh,vh)
en píxeles -
uh,vh
son coordenadas en su cuadrícula de celda central
agregue las vistas pan offset a
(uv,hv)
o(236,133)
ahora simplemente calcule también la transformación inversa de esto(u=?,v=?)
. ¡No olvide que el mapa no es un rectángulo! Es algo como esto:0000x0000, 000xxx000, 00xxxxx00, 0xxxxxxx0, xxxxxxxxx, 0xxxxxxx0, 00xxxxx00, 000xxx000, 0000x0000,
-
crea un conjunto de imágenes de todos los objetos que puedes encontrar
esto se puede hacer sobre la marcha, cada vez que no encuentre una coincidencia, agregue la celda a la lista de elementos como un nuevo tipo de objeto.
recorrer todas las ubicaciones de las celdas de la cuadrícula y comparar con los tipos de objetos
para las imágenes renderizadas con precisión de píxeles puede comparar directamente los píxeles 1: 1 si ese no es el caso, debe comparar los objetos de forma más robusta. Pero para hacer un algoritmo válido, necesitamos ver todos los tipos de objetos que puede encontrar, por lo general, puede comparar:
- colores promedio, mínimo y máximo, histogramas,
- relación de aspecto, ...
- FFT / DCT
- centro de la posición de masa, densidad y más
no olvides enmascarar la comparación con el área de la celda solo para no incluir las celdas vecinas en las esquinas del rectángulo delimitador
[Notas]
No puede ser más específico sin más información