Як виявити центр розмитого кола з opencv


10

У мене є таке зображення:

введіть тут опис зображення

На малюнку є вигини. Я хотів би знайти центр кіл, що містять криві.

Я спробував перетворити opencv і Hough кола, але не мав результатів.


чи всі криві концентричні? чи змінюється інтервал між ними?
ендоліт

так, вони концентричні. і ніякий інтервал не є постійним.
JingKe

Відповіді:


3

Спочатку потрібно буде покращити контрастність зображення, а потім сильно відфільтрувати його, щоб зняти шум. оскільки кола "товсті" (розмиті), ви можете досить фільтрувати, не руйнуючи структури кіл.

Тоді я застосував би якийсь алгоритм виявлення ребер, щоб отримати бінарне зображення краю, яке можна обробити за допомогою кругової трансформації Хофа.

Я отримую таке зображення краю від вашого зображення: введіть тут опис зображення

Використовуючи наступні команди 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);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.