直线目标检测技术

简介: Boofcv研究:直线目标检测public class LineDetection { private static final float edgeThreshold = 25; private static final int m...

Boofcv研究:直线目标检测

public class LineDetection {


    private static final float edgeThreshold = 25;
    private static final int maxLines = 10;

    private static ListDisplayPanel listPanel = new ListDisplayPanel();

    public static<T extends ImageGray, D extends ImageGray>
            void detectLines( BufferedImage image , 
                              Class<T> imageType ,
                              Class<D> derivType )
    {
        T input = ConvertBufferedImage.convertFromSingle(image, null, imageType );

        DetectLineHoughPolar<T,D> detector = FactoryDetectLineAlgs.houghPolar(
                new ConfigHoughPolar(3, 30, 2, Math.PI / 180,edgeThreshold, maxLines), imageType, derivType);


        List<LineParametric2D_F32> found = detector.detect(input);

        ImageLinePanel gui = new ImageLinePanel();
        gui.setBackground(image);
        gui.setLines(found);
        gui.setPreferredSize(new Dimension(image.getWidth(),image.getHeight()));

        listPanel.addItem(gui, "Found Lines");
    }


    public static<T extends ImageGray, D extends ImageGray>
    void detectLineSegments( BufferedImage image ,
                             Class<T> imageType ,
                             Class<D> derivType )
    {
        T input = ConvertBufferedImage.convertFromSingle(image, null, imageType );

        DetectLineSegmentsGridRansac<T,D> detector = FactoryDetectLineAlgs.lineRansac(40, 30, 2.36, true, imageType, derivType);

        List<LineSegment2D_F32> found = detector.detect(input);

        ImageLinePanel gui = new ImageLinePanel();
        gui.setBackground(image);
        gui.setLineSegments(found);
        gui.setPreferredSize(new Dimension(image.getWidth(),image.getHeight()));

        listPanel.addItem(gui, "Found Line Segments");
    }

    public static void main( String args[] ) {
        BufferedImage input = UtilImageIO.loadImage(UtilIO.pathExample("D:\\JavaProject\\Boofcv\\example\\simple_objects.jpg"));

        detectLines(input, GrayU8.class, GrayS16.class);


        detectLineSegments(input, GrayF32.class, GrayF32.class);

        ShowImages.showWindow(listPanel, "Detected Lines", true);
    }
}

这里写图片描述

这里写图片描述

目录
相关文章
|
5月前
|
消息中间件 NoSQL Java
拒绝频繁写库!SpringBoot 整合 BufferTrigger 实现高性能“流量聚合”
本文介绍如何用SpringBoot整合BufferTrigger实现高性能流量聚合,解决高并发下频繁写库的痛点。通过快手开源的BufferTrigger组件,可将大量数据库操作合并为批量执行,显著提升I/O效率,适用于计数、埋点、状态同步等场景,兼具高性能与低延迟。
446 145
|
5月前
|
存储 弹性计算 Linux
阿里云服务器购买流程及配置选择指南【新手友好手册】
阿里云服务器购买流程及配置选择指南【新手友好手册】阿里云服务器主要分为轻量应用服务器与云服务器 ECS 两类,选择时需结合实际应用场景,从实例类型、CPU 内存、公网带宽、存储配置四个核心维度展开,确保资源匹配需求且成本合理。购买阿里云服务器时,特价机型可通过官方活动页面直接选购,企业级高性能服务器或有特殊配置需求的场景,需通过云服务器 ECS 官方页面自定义购买,以下以云服务器 ECS 自定义购买为例,详细介绍流程步骤。
|
存储 Java 编译器
鸿蒙开发:ArkTs数据类型
最后一点是,ArkTS不支持any和unknown类型,需要显式指定具体类型,否则会报异常,具体原因是,这是ArkTS的特性之一,那就是使用静态类型;如果程序采用静态类型,即所有类型在编译时都是已知的,那么开发者就能够容易理解代码中使用了哪些数据结构。同时,由于所有类型在程序实际运行前都是已知的,编译器可以提前验证代码的正确性,从而可以减少运行时的类型检查,有助于提升性能。
598 8
鸿蒙开发:ArkTs数据类型
|
6月前
|
SQL 弹性计算 安全
阿里云服务器全方位介绍:云服务器是什么?应用场景、购买流程、活动价格及使用教程参考
阿里云服务器凭借其强大的性能、灵活的配置和丰富的应用场景,已成为众多企业和个人用户购买云服务器的首选云服务商。本文将从阿里云服务器的定义、应用场景、价格分析、租用购买流程以及使用技巧等方面进行全面解析,帮助用户更好地了解和应用阿里云服务器。
|
10月前
|
数据可视化 开发者
中小型研发团队一样适用:轻量级研发流程整合工具使用策略解析
研发流程整合工具通过统一任务、文档、代码等流程节点,提升团队协作效率,解决沟通碎片化、任务模糊等问题,实现可视化管理与自动化协作,助力团队从“人力推动”转向“系统驱动”。
|
9月前
|
机器学习/深度学习 并行计算 算法
MATLAB实现利用禁忌搜索算法解决基站选址问题
MATLAB实现利用禁忌搜索算法解决基站选址问题
268 0
|
10月前
|
SQL 监控 供应链
如何开发ERP系统中的委外管理板块(附架构图+流程图+代码参考)
在ERP系统中,委外管理模块能有效提升企业生产效率、降低成本。通过工单下发、物料发放、退料、入库及数据分析等功能,实现对外部合作的全流程管理,确保信息透明与流程顺畅。本文详解模块开发技巧与实现方案,助力企业快速搭建高效委外管理体系。
|
SQL 并行计算 API
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
|
机器学习/深度学习 运维 自然语言处理
深度学习+实时监控:运维不再靠“拍脑袋”!
深度学习+实时监控:运维不再靠“拍脑袋”!
524 3
|
JSON 缓存 自然语言处理
陈天奇团队LLM结构化生成新引擎XGrammar:百倍加速、近零开销
陈天奇团队提出XGrammar,一种新型结构化生成引擎,专注于高效生成结构化输出。XGrammar通过分类处理上下文无关和相关词汇,结合预计算、缓存及持久化执行栈,显著提升性能,实现百倍加速,令牌掩码生成时间缩短至40微秒以下。它在文本、代码生成等任务中表现出色,支持跨平台部署,尤其在JSON语法下比现有引擎快3-100倍。尽管存在分类准确性等挑战,XGrammar仍展示了广泛的应用潜力。论文:https://arxiv.org/pdf/2411.15100
449 11