Kezdőoldal » Számítástechnika » Programozás » Hogy mukodik ez a matlab kod,...

Hogy mukodik ez a matlab kod, Hough transform (circles)?

Figyelt kérdés

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


2016. máj. 3. 19:47
 1/1 anonim ***** válasza:

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:

[link]

2016. máj. 3. 23:51
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!