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

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

im = imread('IMG_2917.jpg'); Im = rgb2gray(im); q = max(min(Im)); I = Im <= q; A = ceil(min(size(I))/ 2); B = ceil(max(size(I))); figure sigma = 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))lines = houghlines(BW,T,R,P,'FillGap',B,'MinLength',A); imshow(BW)持有max_len = 0;对于k = 1:长度(线)xy = [lines(k).point1;线(k)的.point2];情节(XY(:,1),XY(:,2), '线宽',2, '颜色', '绿色');情节(XY(1,1),XY(1,2), 'X', '线宽',2, '颜色', '黄色');情节(XY(2,1),XY(2,2), 'X', '线宽',2, '颜色', '红色'); 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); if(len> max_len)max_len = len; xy_long = xy;结束图(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','blue');