Quiero poder encontrar puntos en imágenes que son el centro de un degradado radial como el que se muestra en la imagen de la izquierda a continuación. ¿Alguna idea sobre cómo podría usar una transformación Hough o algún otro método de visión por computadora?
Gracias
ejemplo de imagen de búsqueda:
image-processing
computer-vision
gradient
Waspinator
fuente
fuente
Respuestas:
Estaba trabajando en opencv y tratando de encontrar el pico de un gradiente generado por la transformación de distancia. Me di cuenta de que el uso de operaciones morfológicas (erosión / dilatación) en imágenes grises-scsale era muy útil en este caso. Si erosiona dilatar una imagen en escala de grises, cualquier píxel tomará el valor del vecino más bajo / más alto. Por lo tanto, puede encontrar picos de intensidad en gradientes restando la imagen en escala de grises de la misma imagen dilatada / erosionada. Aquí está mi resultado:
Y una forma de hacerlo en OpenCV / Cpp:
fuente
Esto es lo que tengo hasta ahora. La forma en que estoy poblando mi espacio Hough está lejos de ser óptima. Estoy bastante seguro de que hay algo de vectorización que puedo hacer para hacerlo más rápido. Estoy usando Matlab R2011a. Imagen original
Se agradecen las sugerencias, gracias.
Modifiqué una función de línea de dibujo que encontré en matlab central para aumentar un píxel por un valor en lugar de establecer un píxel en un valor
fuente
Ejecute un histograma de gradientes orientados sobre parches de la imagen: el pico en cada uno de esos histogramas le dará la dirección dominante de ese parche (como las flechas que muestra).
Encuentre dónde se cruzan todas esas flechas: si ese punto está dentro del objeto, podría ser el centro de un degradado radial.
fuente