网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 时尚美容

使用opencv-python来检测图片中的直线的步骤

时间:2024-10-13 13:19:43

1、首先,要往python编译器里面加载模块和图片。# -*- coding: utf-8 -*-import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread("C:/……/a.jpg") #需要图片的绝对路径cv2.imshow('0', img)cv2.waitKey(0)cv2.destroyAllWindows()

使用opencv-python来检测图片中的直线的步骤

2、运行上图的代码,可以显示原图。

使用opencv-python来检测图片中的直线的步骤

3、把图片变成灰度图:gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

使用opencv-python来检测图片中的直线的步骤

4、用Canny算子检测图像的边界。这里的原理,就是图像卷积处理,而Canny算子就是卷积内核,又叫卷积模版。edges = cv2.Canny(gray,50,200)

使用opencv-python来检测图片中的直线的步骤

5、用Hough变换来检测edges里面的直线:ls = cv2.HoughLines猾诮沓靥(edges,1,np.pi/180,100)l1 = ls[:,0,:]输出直线的端点坐标pr足毂忍珩int(l1)一共检测出9条直线。

使用opencv-python来检测图片中的直线的步骤

6、在原图中把所有的直线,凸显出来:for r,t in l1[:]: a = np.cos(t) b = np.sin(t) x0 = a*r y0 = b*r x1 = int(x0 + 1000*(-b)) y1 = int(y0 + 1000*(a)) x2 = int(x0 - 1000*(-b)) y2 = int(y0 - 1000*(a)) cv2.line(img,(x1,y1),(x2,y2),(0,255,255),1)

使用opencv-python来检测图片中的直线的步骤

7、运行,出图。观察发现,有得线段没检测出来,而有的不存在的直线反而画出来了。

使用opencv-python来检测图片中的直线的步骤
© 2025 小知经验
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com