直线目标检测技术-阿里云开发者社区

开发者社区> 小金子> 正文

直线目标检测技术

简介: 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);
    }
}

这里写图片描述

这里写图片描述

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
活体检测及实人认证
结合阿里云实人认证、函数计算、API网关等产品,帮助用户快速搭建从服务端到客户端的完整实人认证和活体检测能力,极大减轻了用户的开发难度,提升了用户的开发效率,让用户能有更多的精力关注在核心业务拓展上。
1489 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10077 0
【论文理解】ICCV2021-视频中小目标检测Dogfight
论文地址:https://arxiv.org/abs/2108.02092目标:在无人机飞行过程中捕获的背景杂乱的画面中检测其他无人机挑战:任意的移动(相机移动,目标也移动)小尺寸,只占画面像素的0.05%~0.07%(PASCAL VOC (22.62%) and ImageNet (19.94%))形状变换(拍摄角度不同,拍摄的无人机形状不同)遮挡基于region-proposal的方法无法捕
186 0
目标检测技术演化:从R-CNN到Faster R-CNN
一文了解目标检测技术发展,不要错过哟。
2540 0
基于深度学习技术的视频内容检测
短视频APP在UGC场景下出现了大量重复视频内容,该重复视频被重复曝光、重复消费,造成了用户体验较差,甚至于用户流失。本次分享重点介绍基于深度学习CNN技术构建视频重复内容检测服务,并给出该方案的工程实现。该服务上线后,重复检测准确率80%,视频内容分发提效20%。
1088 0
js创建调用ocx对象的几种方法,检测ocx是否可用
1:创建ActiveX对象   在web中使用ActiveX组件有两种方法,一是如下rep_print_medcan.CABOBJECT标签中,通过ID指点了对象的ID号,javascript可以使用该ID号来引用该对象,而classid用于标识这个组件,每个ActiveX组件都有唯一一个用于表示他的ID号。
1480 0
js 正则之检测素数
原文:js 正则之检测素数 相信很多人应该看过这篇文章,我第一次看到的时候是11年的样子,那时候学vbs的时候看过这个问题。原文《检查素数的正则表达式》,在文章里已经解释了他是怎么判断的,我就不啰嗦了。
870 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13884 0
感兴趣区域检测技术
Boofcv研究:感兴趣区域检测技术 public class InterestPoint { public static void detect( BufferedImage image , Class imageType ) { T input = ConvertBufferedImage.
794 0
+关注
小金子
热爱分布式技术
344
文章
11
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载