私はここに関連するが同じではない質問を投稿しました
背景: 次のような画像がたくさんあります。
同一線上にあるすべての線分を特定し、これらの線分の長さを測定したいと思います。上の画像では、負の傾きを持つ仮想線上に 3 組のセグメントがあります。最も長い線分にはペアがないため、考慮されません。つまり、同一直線上にある線分が少なくとも 2 つ必要です。
私は以下を取得します:
I = imread('http://dl.dropbox.com/u/18072545/c_39_green.tif');
BW = edge(I,'canny');
[H,T,R] = hough(BW);
NUMPEAKS=15;
PEAKTHRESHOLD= 80;
SUPPRESSNHBR=[40 40];
P = houghpeaks(H,NUMPEAKS,'threshold',PEAKTHRESHOLD,'NHoodSize',SUPPRESSNHBR);
MINLENGTH_OF_SEGMENT=50;
GAPLENGTH_TO_MERGE=30;
lines = houghlines(BW,T,R,P,'FillGap',GAPLENGTH_TO_MERGE,'MinLength',MINLENGTH_OF_SEGMENT);
max_len = 0;
figure, imshow(I), hold on
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
end
妥当なパフォーマンスを得るために、パラメーターをいじる必要がありました (ただし、一番下にあるセグメントの開始ビットをキャプチャーするパラメーターを見つけることはできません)。ただし、重複している複数のセグメントを見つけることは避けられません。
誰か助けてください。2. 同一線上にあるすべての線を特定する
どうもありがとう!