Saya memiliki gambar yang terlihat seperti di bawah ini:
Saya mencoba menemukan jari-jari (atau diameter) lingkaran. Saya telah mencoba menggunakan circular Hough transform (via matlab's imfindcircles(bw,[rmin rmax],'ObjectPolarity','bright')
), dan dengan memasang lingkaran atau elips (fungsi buatan sendiri yang berfungsi dengan baik untuk data yang kurang berisik, lihat di bawah).
Saya juga sudah mencoba beberapa pemrosesan gambar untuk mendapatkan lingkaran yang lebih jelas, misalnya, lihat di bawah:
se = strel('disk', 2);
bw = imdilate(bw, se);
bw = bwareaopen(bw,100000);
bw = edge(bw);
Namun, ketika saya memberi makan gambar yang diproses ke teknik (pas Hough dan lingkaran \ elips) tidak satu pun dari mereka berhasil mendeteksi lingkaran dengan cara yang layak.
Berikut cuplikan kode finder lingkaran yang saya tulis (matlab) [row col] = find (bw); contour = bwtraceboundary (bw, row (1), col (1)], 'N', konektivitas, num_points);
x = contour(:,2);
y = contour(:,1);
% solve for parameters a, b, and c in the least-squares sense by
% using the backslash operator
abc = [x y ones(length(x),1)] \ -(x.^2+y.^2);
a = abc(1); b = abc(2); c = abc(3);
% calculate the location of the center and the radius
xc = -a/2;
yc = -b/2;
radius = sqrt((xc^2+yc^2)-c);
Pendekatan alternatif akan dihargai ...