책 Feature Extraction & Image Processing
에서 코드를 받았습니다. 저는 Matlab의 초보자이므로이 코드를 실행하여 결과를 보는 방법을 모르겠습니다. 완료 되었습니까?Hough Transform Matlab - 어떻게 표시하나요?
먼저 하나 (호우 나 이미지가 Elipses
에 대한%Hough Transform for Ellipses
function HTEllipse(inputimage,a,b)
%image size
[rows,columns]=size(inputimage);
%accumulator
acc=zeros(rows,columns);
%image
for x=1:columns
for y=1:rows
if(inputimage(y,x)==0)
for ang=0:360
t=(ang*pi)/180;
x0=round(x-a*cos(t));
y0=round(y-b*sin(t));
if(x00 & y0< rows & y0>0)
acc(y0,x0)=acc(y0,x0)+1;
end
end
end
end
end
변환 : 호우가 원
%Hough Transform for Circles
function HTCircle(inputimage,r)
%image size
[rows,columns]=size(inputimage);
%accumulator
acc=zeros(rows,columns);
%image
for x=1:columns
for y=1:rows
if(inputimage(y,x)==0)
for ang=0:360
t=(ang*pi)/180;
x0=round(x-r*cos(t));
y0=round(y-r*sin(t));
if(x00 & y00)
acc(y0,x0)=acc(y0,x0)+1;
end
end
end
end
end
셋째 하나 변환 : 호우가 라인
%Polar Hough Transform for Lines
function HTPLine(inputimage)
%image size
[rows,columns]=size(inputimage);
%accumulator
rmax=round(sqrt(rows^2+columns^2));
acc=zeros(rmax,180);
%image
for x=1:columns
for y=1:rows
if(inputimage(y,x)==0)
for m=1:180
r=round(x*cos((m*pi)/180)+y*sin(m*pi)/180);
if(r0) acc(r,m)=acc(r,m)+1; end
end
end
end
end
1 초 동안 변환 png)이 프로그램을 실행할 필요가 있습니다. 그러나 나는 그것을 실행할 수 없습니다. 새 스크립트를 만들고 코드를 붙여넣고 기본 창에 매개 변수로 이미지 경로를 보내는 함수 이름을 실행합니다. 아무것도하지 않고 메시지도 없습니다.
http://www.mathworks.de/de/help/images/ref/hough.html 내가이에 R0을 변경합니다 : if (R 0) 책에있다. 당신이 언급 한 if 문을 제거한 후에, 나는 acc를 얻었다. 그러나 저는 그것이 선들만으로 이미지를 돌려주고 싶습니다. 여기를보십시오 : http://books.google.pl/books?id=97QebyNxyaYC&printsec=frontcover#v=onepage&q=false Page 200 - 결과 g, h, i - 선만 필요하며 이전 이미지를 찾을 필요가 없습니다. Btw, 내가 준 코드는 아래 2 페이지와 "if"문이 있습니다. wied : –
Fengson
독일에서 책 페이지를 볼 수는 없지만 신경 쓰지 않아도됩니다. 그래, 내가 말했듯이, 당신은 당신이 쉽게 음모를 꾸밀 수있는 선의 매개 변수를주는 누산기 배열에서 최대 값을 찾아야합니다. 그래서 당신은 스스로 최대 검색을하거나, houghpeaks 함수를 사용하여 검색을 수행하거나 여기에 허용 된 대답을보십시오. http://stackoverflow.com/questions/6680302/hough-transform-in-matlab – tim