zoukankan      html  css  js  c++  java
  • android opencv

    最近工作需求:用opencv来先做一个demo。扫描照片进行边缘检测和透视矫正。

    之后会加入照片降噪等处理。

    请教了一下搞图像的同事。他的提议:

    1、绿盟的“黄色照片检测” 用的是动态的opencv库。apk反编译出来有显示,导致技术人员对这个的应用评价变差。

    2、opencv 用在这两个功能上,属于大材小用。用c语言写一两个函数,java层把照片传到c层。速度很快就可以完成。

    3、opencv 只是提供一个框架,具体的功能实现,还是要自己写。功能很少的情况下,没有想象的那么好用和简便。

    4、推荐了两本书

    深入理解OpenCV:实用计算机视觉项目解析 [Mastering OpenCV with Practical Computer Vision Pr]

    Android OpenCV应用程序设计/(Joseph Howse)著,赵雷 译

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Canny函数。线条太多

    采用Java层的findContours函数做尝试

     findContours

    public static void findContours(Mat image,
                                    java.util.List<MatOfPoint> contours,
                                    Mat hierarchy,
                                    int mode,
                                    int method)

    findContours

    public static void findContours(Mat image,
                                    java.util.List<MatOfPoint> contours,
                                    Mat hierarchy,
                                    int mode,
                                    int method,
                                    Point offset)

    其中的参数

    mode 
    提取模式. 
    CV_RETR_EXTERNAL - 只提取最外层的轮廓  (这个就真的只有外层轮廓,数组数据个数为1)
    CV_RETR_LIST - 提取所有轮廓,并且放置在 list 中 
    CV_RETR_CCOMP - 提取所有轮廓,并且将其组织为两层的 hierarchy: 顶层为连通域的外围边界,次层为洞的内层边界。  (这个会将图片的方形边框连起来)
    CV_RETR_TREE - 提取所有轮廓,并且重构嵌套轮廓的全部 hierarchy 

  • 相关阅读:
    linux(ubuntu) 系统修改/etc/fstab文件后无法进入系统的解决方法-摘录
    linux实现实时同步服务
    linux利用网易邮箱发送邮件
    企业数据库备份方案——mysqldump完全备份+binlog增量备份
    Nginx下隐藏index.php
    linux日志详解-摘录
    expect免交互用法
    删除超过多少天的日志文件或者备份文件
    Python_结合Re正则模块爬虫
    Jmeter性能分析
  • 原文地址:https://www.cnblogs.com/maxiaodoubao/p/4533447.html
Copyright © 2011-2022 走看看