tengo una imagen que se parece a esto:MATLAB procesamiento de imágenes de pequeños círculos
tengo una tarea en la que debería rodear todas las botellas en torno a su apertura. Creé un algoritmo simple y comencé a trabajarlo. Mi algoritmo de la siguiente manera:
- Umbral de la imagen original
- Haga un poco de apertura morfológica en ella
- Rellenar los huecos vacíos
- separar la parte de la imagen utilizando los apoyos región de tal manera que sólo el área equivalente a la se selecciona la boca de las botellas.
- Encuentra el centroide para cada uno y dibuja un círculo alrededor de cada botella.
Lo hice de acuerdo con el algoritmo de arriba y pero tengo una parte de la imagen alrededor de la cual hago un círculo. Esto se debe a que he seleccionado el área desde el área de la boca de la botella y el ruido que queda es casi el mismo. Y entonces obtuve una figura como esta.
El tratamiento aplicado en la imagen se vea así:
Y mi imagen final después de trazar el círculo sobre la imagen original es de esta manera:
pienso Puedo lidiar con el círculo extra, es decir, debido a que queda algo de parte blanca de la imagen, como se muestra en la figura 2 a continuación. Esto puede filtrarse usando regionproping para excentricity. ¿Es una buena idea o hay otros enfoques para esto? ¿Cómo lidiaría con otras botellas detrás del vidrio y las seleccionaría?
Otra idea es usar [Hough transform] (http://en.wikipedia.org/wiki/Hough_transform) para [detectar círculos] (http://www.cis.rit.edu/class/simg782/lectures /lecture_10/lec782_05_10.pdf) – Amro
posible duplicado de [El mejor algoritmo de ajuste de círculo] (http://stackoverflow.com/questions/4387488/the-best-circle-fitting-algorithm) – abcd
Hay varias implementaciones de MATLAB disponibles de forma gratuita la [circular Hough transform] (http://www.mathworks.com/matlabcentral/fileexchange/?term=hough+transform+circle) en MATLAB Central File Exchange. –