hough peaks not symmetric for rectangle

2 ビュー (過去 30 日間)
Michael scheinfeild
Michael scheinfeild 2014 年 7 月 8 日
回答済み: Michael scheinfeild 2014 年 7 月 9 日
hello i use hough transform for rectangle the peaks should be symetric. but they are not symmetric around theta angle based on
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.59.4239&rep=rep1&type=pdf]
%%just test
close all;clear;
m=zeros(200,300);
m=logical(m);
m(50,30:190)=1;
m(100,30:190)=1;
m(50:100,30)=1;
m(50:100,190)=1;
%m=imrotate(m,45);
stats=regionprops(m,'BoundingBox');
bx = stats.BoundingBox;
m=imcrop(m,bx);
m=padarray(m,[3 3]);
figure(1),imagesc(m)
[H, T, R] = hough(m);
figure(2)
imshow(imadjust(mat2gray(H)),'XData',T,'YData',T,...
'InitialMagnification','fit');
title('Hough Transform of Image');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(hot);
Hv=H(:);
mxH = 0.2*max(Hv);
ii=find(Hv>=mxH);
[aa bb] = ind2sub(size(H),ii);
figure(4),imagesc(T,R,H),hold on,plot(T(bb),R(aa),'gs','MarkerSize',10,'MarkerFaceColor',[0.5,0.5,0.5]);

採用された回答

Anand
Anand 2014 年 7 月 8 日
The symmetry should hold only for rectangles centered at the origin. I just skimmed the paper, but it seems to describe a technique where the search space is centered around the peak you are currently looking at. In MATLAB, the origin is at the top left pixel in the image.
When the rectangle is at the center, rho1=-rho2 and rho3=-rho4. This is not the case when the rectangle isn't centered at the origin.

その他の回答 (1 件)

Michael scheinfeild
Michael scheinfeild 2014 年 7 月 9 日
yes you right i suppose i need to write the hough transform by myself with moving window , i suppose the center should be at center of mass of the shape

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by