Hogy mukodik ez a matlab kod, Hough transform (circles)?
a=imread('circle.bmp');
b=rgb2gray(a); %Convert RGB image or colormap to grayscale
in=edge(b,'sobel'); %(The edge is the weighted mean of the classification margins.)
%SOBEL> Finds edges using the Sobel approximation to the derivative. It returns edges at those points where the gradient of I is maximum.
% imshow(a);
% title('Color image radius');
[h,w]=size(in);
if w>h g=floor(h/2);
else g=floor(w/2);
end
B=zeros(g,h,w); %letrehoz egy 3dimenzios tombot
% Specifikus algoritmus
for j=1:w
for i=1:h
if in(i,j)==1
for aa=1:w
for bb=1:h
rr=floor(sqrt((j-aa)^2+(i-bb)^2));
if rr<g&&rr~=0 B(rr,bb,aa)=B(rr,bb,aa)+1;
end
end
end
end
end
end
% A csucsokat,eleket keresi
max=0;
for k=1:g
"""""""""""""""""""""""""""""""""
A "% Specifikus algoritmus " reszt nem ertem, es a "% A csucsokat,eleket keresi" - ezeket valaki eltudná mondani kb. hogy hogy van, legyen szíves
Először kiemeli az éleket a Sobel operátorral és készít egy bináris képet küszöbözéssel. Az lesz az in változó.
Aztán kiszámolja hogy mekkora az a maximális sugár ami még belefér a képbe, ez lesz a g változó.
A Hough-transzformáció ismeretlen sugarú köröknél úgy működik, hogy a kép minden pixelére kiszámolja hogy az élek pixeleitől milyen távolságra van, és a [távolság, pixel_x, pixel_y] 3D tömböt növeli egyel ha a távolság nem nagyobb mint a maximális sugár de legalább 0.
Ez azt jelenti hogy a 3D tömb azon elemei lesznek nagyok, azaz azokat az elemeket növeltük sokszor ahol a pixeltől egy bizonyos távolságra sok olyan pixel található ami rajta van az élen. A körél definíciója pedig az hogy azon pontok halmaza ami egy adott ponttól azonos távolságra vannak. Nagy valószínűséggel ha egy pixeltől sok azonos távolságra lévő élpont található akkor az egy körnek a középpontja.
Ha megkeressük a 3D tömbben a legnagyobb elemet (vagy küszöbözünk) akkor megkapjunk a körnek a középpontját és sugarát. <- a kód ezen része kimaradt a kérdésből
Érdemes megnézni ezt a cikket:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!