0

我正在做一个项目,该项目必须找到两条线段的交点坐标,这些线段是棋盘图像的垂直线。在使用 canny edje 检测后,我找到了 Hough 变换的线段。我找到了每条线的起点和终点![在此处输入图像描述][1] 但我不知道如何找到这些线相交的坐标。

时间不多了。任何可以的人,请帮助我。我正在使用 matlab,我所拥有的只是下面代码的结果。这是我的代码:

im = imread('IMG_2917.jpg');

Im = rgb2gray(im);

q = 最大值(最小值(Im));

我 = 我 <= q;

A = ceil(min(大小(I))/2);

B = ceil(max(大小(I)));

数字

西格玛=1;

BW = edge(I, 'canny', [], sigma);

[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))

线= houghlines(BW,T,R,P,'FillGap',B,'MinLength',A);

显示(BW)

坚持,稍等

最大长度 = 0;

对于 k = 1:长度(行)

xy = [线(k).point1;线(k).point2];

plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');

绘图(xy(1,1),xy(1,2),'x','线宽',2,'颜色','黄色');

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 = norm(lines(k).point1 -lines(k).point2);

如果 (len > max_len)

最大长度 = 长度;

xy_long = xy;

结尾

结尾

plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','blue');

4

0 回答 0