私は、これらの線分がチェス盤の画像の垂直線である 2 つの線分の交点の座標を見つける必要があるプロジェクトに取り組んでいます。キャニーエッジ検出を使用した後、ハフ変換で線分を見つけます。各線の始点と終点を見つけました![ここに画像の説明を入力][1] しかし、これらの線の交点の座標を見つける方法がわかりません。
時間がなくなっています。誰でも、私を助けてください。私が持っているのは、以下のコードの結果だけです。私のコードがあります:
im = imread('IMG_2917.jpg');
イム = rgb2gray(イム);
q = 最大 (最小 (Im));
私 = 私 <= q;
A = ceil(最小(サイズ(I))/2);
B = ceil(最大(サイズ(I)));
形
シグマ=1;
BW = edge(I, 'キャニー', [], シグマ);
[H、T、R] = ハフ (BW);
P = houghpeaks(H,8,'threshold',ceil(0.25*max(H(:))));
x = T(P(:,2));
y = R(P(:,1));
Q(:,1) = R(P(:,1));
Q(:,2) = T(P(:,2))
lines = houghlines(BW,T,R,P,'FillGap',B,'MinLength',A);
imshow(BW)
持続する
max_len = 0;
k = 1 の場合: 長さ (行)
xy = [行(k).point1; 行 (k). ポイント 2];
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');
disp(['line #' num2str(k) ':(' num2str(xy(1,1)) ',' num2str(xy(1,2)) ')' ';' ...
'(' num2str(xy(2,1)) ',' num2str(xy(2,2)) ')']);
len = ノルム (行 (k). ポイント 1 - 行 (k). ポイント 2);
もし (len > max_len)
max_len = len;
xy_long = xy;
終わり
終わり
plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','blue');