cara mendeteksi pusat lingkaran buram dengan opencv

10

Saya sudah mendapat gambar berikut:

masukkan deskripsi gambar di sini

Ada lengkungan pada gambar. saya ingin menemukan pusat lingkaran yang berisi kurva.

Saya mencoba membuka dan mengubah lingkaran hough tetapi tidak memiliki hasil.

JingKe
sumber
apakah semua kurva konsentris? Apakah jarak antar variabel?
endolith
ya, mereka konsentris. dan tidak ada spasi yang konstan.
JingKe

Jawaban:

3

Anda harus meningkatkan kontras gambar terlebih dahulu, lalu saring dengan kuat untuk menghilangkan noise. karena lingkarannya 'tebal' (buram), Anda dapat memfilter sedikit tanpa merusak struktur lingkaran.

Saya kemudian akan menerapkan beberapa algoritma deteksi tepi untuk mendapatkan gambar tepi biner yang dapat diproses oleh Circular Hough Transform.

Saya mendapatkan gambar tepi berikut dari gambar Anda: masukkan deskripsi gambar di sini

Menggunakan perintah MATLAB berikut:

 % 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);
nimrodm
sumber