JavaRush /Blog Java /Random-ES /Encontrar el centro de una figura irregular en un plano.
fatfaggy
Nivel 26
Киев

Encontrar el centro de una figura irregular en un plano.

Publicado en el grupo Random-ES
Hola a todos. Estoy resolviendo un problema simple ahora mismo. La condición suena más o menos así:
Dada una matriz (matriz bidimensional), en la que cada elemento representa un píxel. Los píxeles pueden ser rojos, negros o de algún otro color. Es necesario implementar una búsqueda del efecto de ojos rojos en la imagen. Si el centro de los píxeles negros coincide con el centro de los píxeles rojos, entonces hemos encontrado un ojo rojo.
Se supone que los límites del rango de píxeles rojos son más anchos que los límites del rango de píxeles negros. Además, no se consideran opciones si la imagen contiene píxeles rojos y negros fuera del "ojo". Todo lo que esté fuera del “ojo” será de un color diferente. Planeé implementarlo usando (aproximadamente) este algoritmo. Dos bucles, uno anidado dentro del otro. Uno pasa por X, el otro pasa por Y. En cuanto encontramos el píxel rojo, fijamos sus coordenadas como las iniciales y buscamos las coordenadas finales. Tan pronto como resulta que los píxeles rojos ya no aparecen, fijamos el último píxel rojo que encontramos como las coordenadas finales del rango de píxeles rojos. Lo mismo con los píxeles negros. Luego dividimos los rangos por la mitad y encontramos los centros. Un algoritmo de este tipo funcionará bastante bien con figuras de forma más o menos regular (círculo). Y aquí decidí complicar mi tarea)) Es decir, entender cómo mejorar el algoritmo para formas irregulares. Por ejemplo, si una persona tiene algún problema de visión (por lo que la forma del ojo puede ser incorrecta), o la foto fue tomada en ángulo, o algunas otras situaciones... Una búsqueda rápida me llevó a artículos de Wikipedia sobre el centro de masa y baricentro. Pero hay tanto lenguaje aterrador y terrible allí que decidí dejarlo de lado por ahora y preguntarle a la comunidad cómo implementarían esto. :)
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION