LSD 用python的opencv来做线检测

问题:cv2.error: OpenCV(4.5.2) ...Implementation has been removed due original code license issues in function...

因为opencv中许可证的问题,lsd在opencv4.x中不能用了

所以在检测之前,在pycharm中,先创建一个新的python解释器的虚拟环境,安装一个opencv3.2.0.8的版本

pip install opencv-python==3.2.0.8

这样,网上的lsd代码就能用了。

import cv2
import numpy as np

img = './src.jpg'
image_gray = cv2.imread(img, 0)
lsd = cv2.createLineSegmentDetector(0, _scale=1)
dlines = lsd.detect(image_gray)
for dline in dlines[0]:
    x0 = int(round(dline[0][0]))
    y0 = int(round(dline[0][1]))
    x1 = int(round(dline[0][2]))
    y1 = int(round(dline[0][3]))
    cv2.line(image_gray, (x0, y0), (x1, y1), 255, 1, cv2.LINE_AA)

cv2.imwrite('./lines.jpg', image_gray)

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: lsd直线检测是一种基于OpenCV-Python的图像处理技术,用于检测图像中的直线。该技术使用LSD算法(Line Segment Detection)来检测图像中的直线,可以应用于许多领域,如机器人视觉、自动驾驶、医学图像处理等。LSD直线检测可以快速准确地检测出图像中的直线,具有很高的实用价值。 ### 回答2: LSD直线检测是一种使用OpenCV-Python库进行图像处理的方法。LSD代表最短距离直线检测。它是一种先进的计算机视觉算法,可以在数百或数千个像素上检测出直线。该算法能够提供极高的精度和速度,特别适用于在复杂背景下检测线条。此外,这个算法还可以处理不同颜色和灰度图像。 LSD直线检测算法的基本原理是在一系列不同尺度和方向的线段上使用多个模板,包括沿着线波峰波谷的同步检测。然后使用霍夫变换对检测的直线进行筛选,去除不符合检测标准的直线。最终的结果是一组有序的直线。 在OpenCV-Python库中,我们可以使用cv2. createLineSegmentDetector()函数实现LSD直线检测。这个函数有一个参数scale,可以用来设置需要检测线条的大小。另外,这个函数还有一个可选的参数,可以设置直线的检测阈值。这样,在图像中检测到的线越少,最后输出的直线越准确。另外,lsd检测还允许我们从输出中选择最长直线。 LSD直线检测计算机视觉和机器视觉中具有广泛的应用。它可以用于检测交通信号的位置、机器人自动驾驶行驶、身份识别和安全监控等领域。此外,LSD还可以用于图像分割,在将原始图像分成几个不同的部分时非常有用。因此,LSD直线检测是一个非常实用的算法,可以为我们带来许多重要的应用。 ### 回答3: LSD直线检测是一种常用的计算机视觉算法,它可以在图像中找到直线的位置和方向。在opencv-python中,可以使用cv2.createLineSegmentDetector函数来实现LSD直线检测。 这个函数可以通过三个参数来控制检测结果。第一个参数scale设置检测的精度,取值范围在1到√2之间,值越大,则检测时间越短,但是精度降低。第二个参数sigma_scale是线检测器中使用的高斯滤波模板的比例因子,该因子决定了线检测器工作时使用的滤波模板的尺寸,sigma_scale越大,则使用的滤波模板的尺寸越大。第三个参数detect_threshold表示直线的检测阈值,控制着被检测出直线的数量和质量,越小,则检测出的直线越多,但质量可能较低。 使用LSD直线检测在图像处理中有广泛的应用,比如在图像中检测道路和车道线、纸张和条码边缘、图像中的直线和轮廓等。因为LSD直线检测的算法复杂度较低,相对于其它直线检测算法它的速度快,准确性较高,同时比较容易实现和使用,因此被广泛应用于实际场景中。 总之,LSD直线检测是一种简单而有效的检测算法,它能够在图像中快速发现存在的直线,应用范围广泛,值得我们在进行图像处理时进行尝试。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值