como detectar o centro de um círculo embaçado com opencv


10

Eu tenho a seguinte imagem:

insira a descrição da imagem aqui

Existem curvas na imagem. eu gostaria de encontrar o centro dos círculos contendo curvas.

Eu tentei transformar opencv e hough circle, mas não obtive resultados.


todas as curvas são concêntricas? o espaçamento entre eles é variável?
Endolith 19/07

sim, eles são concêntricos. e nenhum espaçamento é constante.
Jingke

Respostas:


3

Você precisará melhorar o contraste da imagem primeiro e depois filtrá-la fortemente para remover o ruído. Como os círculos são "grossos" (embaçados), é possível filtrar um pouco sem destruir a estrutura dos círculos.

Eu aplicaria então algum algoritmo de detecção de borda para obter uma imagem de borda binária que possa ser processada pela Transformação de Hough Circular.

Recebo a seguinte imagem de borda da sua imagem: insira a descrição da imagem aqui

Usando os seguintes comandos do MATLAB:

 % x is the input grayscale image. First we adaptively improve the contrast over the image
 y= adapthisteq(x);

 % next we use the Canny edge detector with a strong Gaussian lowpass filter
 ee=edge(y, 'canny', [], 5);
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.