我正在做一个项目,该项目必须找到两条线段的交点坐标,这些线段是棋盘图像的垂直线。在使用 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');