Aşağıdaki gibi görünen bir görüntü var:
Dairenin yarıçapını (veya çapını) bulmaya çalışıyorum. Dairesel Hough dönüşümü (matlab ile imfindcircles(bw,[rmin rmax],'ObjectPolarity','bright')
) kullanarak ve bir daire veya bir elips (daha az gürültülü veriler için oldukça iyi çalışan ev yapımı fonksiyona uyarak) denedim .
Ayrıca, daha net bir daire elde etmek için bazı görüntü işleme denedim, örneğin, aşağıya bakın:
se = strel('disk', 2);
bw = imdilate(bw, se);
bw = bwareaopen(bw,100000);
bw = edge(bw);
Ancak, işlenen görüntüyü her iki tekniğe de (Hough ve circle \ ellipse fitting) beslediğimde, ikisi de daireyi iyi bir şekilde algılamayı başaramaz.
İşte yazdığım daire bulucunun kod pasajı (matlab) [row col] = find (bw); kontur = bwtraceboundary (bw, satır (1), sütun (1)], 'N', bağlantı, sayı_ noktaları);
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);
Alternatif yaklaşımlar takdir edilecektir ...