类 LineSegmentDetector


  • public class LineSegmentDetector
    extends Algorithm
    线段检测器类,遵循 CITE: Rafael12 中描述的算法。注意:由于原始代码许可冲突,该实现在 OpenCV 3.4.6 到 3.4.15 版本以及 4.1.0 到 4.5.3 版本中已被移除。在 [NFA 计算](https://github.com/rafael-grompone-von-gioi/binomial_nfa) 代码以 MIT 许可发布后,已再次恢复。
    • 构造函数详细信息

      • LineSegmentDetector

        protected LineSegmentDetector​(long addr)
    • 方法详细信息

      • detect

        public void detect​(Mat image,
                           Mat lines,
                           Mat width,
                           Mat prec,
                           Mat nfa)
        在输入图像中查找线条。这是在上面显示的图像上使用算法默认参数的输出。 ![image](pics/building_lsd.png)
        参数
        image - 灰度 (CV_8UC1) 输入图像。如果只需要选择 ROI,请使用:lsd_ptr->detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
        lines - Vec4f 元素的向量,指定线条的起始和结束点。其中 Vec4f 为 (x1, y1, x2, y2),点 1 是起点,点 2 是终点。返回的线条严格根据梯度定向。
        width - 线条所在区域的宽度向量。例如,线条的宽度。
        prec - 找到线条的精度向量。
        nfa - 包含线条区域中误报数量的向量,精度为 10%。值越大,对数检测越好。
        • -1 对应于 10 个平均误报
        • 0 对应于 1 个平均误报
        • 1 对应于 0.1 平均误报。只有当对象类型为 #LSD_REFINE_ADV 时才会计算此向量。
      • detect

        public void detect​(Mat image,
                           Mat lines,
                           Mat width,
                           Mat prec)
        在输入图像中查找线条。这是在上面显示的图像上使用算法默认参数的输出。 ![image](pics/building_lsd.png)
        参数
        image - 灰度 (CV_8UC1) 输入图像。如果只需要选择 ROI,请使用:lsd_ptr->detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
        lines - Vec4f 元素的向量,指定线条的起始和结束点。其中 Vec4f 为 (x1, y1, x2, y2),点 1 是起点,点 2 是终点。返回的线条严格根据梯度定向。
        width - 线条所在区域的宽度向量。例如,线条的宽度。
        prec - 找到线条的精度向量。值越大,对数检测越好。
        • -1 对应于 10 个平均误报
        • 0 对应于 1 个平均误报
        • 1 对应于 0.1 平均误报。只有当对象类型为 #LSD_REFINE_ADV 时才会计算此向量。
      • detect

        public void detect​(Mat image,
                           Mat lines,
                           Mat width)
        在输入图像中查找线条。这是在上面显示的图像上使用算法默认参数的输出。 ![image](pics/building_lsd.png)
        参数
        image - 灰度 (CV_8UC1) 输入图像。如果只需要选择 ROI,请使用:lsd_ptr->detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
        lines - Vec4f 元素的向量,指定线条的起始和结束点。其中 Vec4f 为 (x1, y1, x2, y2),点 1 是起点,点 2 是终点。返回的线条严格根据梯度定向。
        width - 线条所在区域的宽度向量。例如,线条的宽度。值越大,对数检测越好。
        • -1 对应于 10 个平均误报
        • 0 对应于 1 个平均误报
        • 1 对应于 0.1 平均误报。只有当对象类型为 #LSD_REFINE_ADV 时才会计算此向量。
      • detect

        public void detect​(Mat image,
                           Mat lines)
        在输入图像中查找线条。这是在上面显示的图像上使用算法默认参数的输出。 ![image](pics/building_lsd.png)
        参数
        image - 灰度 (CV_8UC1) 输入图像。如果只需要选择 ROI,请使用:lsd_ptr->detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
        lines - Vec4f 元素的向量,指定线条的起始和结束点。其中 Vec4f 为 (x1, y1, x2, y2),点 1 是起点,点 2 是终点。返回的线条严格根据梯度定向。值越大,对数检测越好。
        • -1 对应于 10 个平均误报
        • 0 对应于 1 个平均误报
        • 1 对应于 0.1 平均误报。只有当对象类型为 #LSD_REFINE_ADV 时才会计算此向量。
      • drawSegments

        public void drawSegments​(Mat image,
                                 Mat lines)
        在给定图像上绘制线段。
        参数
        image - 将绘制线条的图像。应大于或等于找到线条的图像。
        lines - 需要绘制的线条向量。
      • compareSegments

        public int compareSegments​(Size size,
                                   Mat lines1,
                                   Mat lines2,
                                   Mat image)
        用蓝色和红色绘制两组线,计算不重叠(不匹配)的像素。
        参数
        size - 图像的大小,其中找到 lines1 和 lines2。
        lines1 - 需要绘制的第一组线条。它以蓝色可视化。
        lines2 - 第二组线条。它们以红色可视化。
        image - 可选图像,将在其中绘制线条。图像应该是彩色(3 通道),以便 lines1 和 lines2 以上述颜色绘制。
        返回
        自动生成
      • compareSegments

        public int compareSegments​(Size size,
                                   Mat lines1,
                                   Mat lines2)
        用蓝色和红色绘制两组线,计算不重叠(不匹配)的像素。
        参数
        size - 图像的大小,其中找到 lines1 和 lines2。
        lines1 - 需要绘制的第一组线条。它以蓝色可视化。
        lines2 - 第二组线条。它们以红色可视化。为了使 lines1 和 lines2 以上述颜色绘制。
        返回
        自动生成
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize 在类中 Algorithm
        抛出
        java.lang.Throwable