Mam następujący obraz:
Na zdjęciu są krzywe. Chciałbym znaleźć środek okręgów zawierających krzywe.
Próbowałem przekształcić OpenCV i Hough Circle, ale nie przyniosłem rezultatów.
Mam następujący obraz:
Na zdjęciu są krzywe. Chciałbym znaleźć środek okręgów zawierających krzywe.
Próbowałem przekształcić OpenCV i Hough Circle, ale nie przyniosłem rezultatów.
Odpowiedzi:
Najpierw musisz poprawić kontrast obrazu, a następnie mocno go przefiltrować, aby usunąć szum. ponieważ okręgi są „grube” (rozmyte), możesz dość dużo filtrować bez niszczenia struktury kręgów.
Następnie zastosowałbym algorytm wykrywania krawędzi, aby uzyskać binarny obraz krawędzi, który może być przetwarzany przez Circular Hough Transform.
Otrzymuję następujący obraz krawędzi z twojego obrazu:
Za pomocą następujących poleceń 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);