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 

  • 相关阅读:
    技术债务墙:一种让技术债务可见并可协商的方法
    墙裂推荐
    shell 脚本通过Webhook 发送消息到微信群
    关于中医的一段对话 [ZZ] -- 思维训练故事
    应用深度神经网络预测学生期末成绩
    Python中的模块引用机制
    批量修改含空格的文件名「Linux」
    Markdown数学公式语法
    批处理修改IP
    FTD团队目录
  • 原文地址:https://www.cnblogs.com/maxiaodoubao/p/4533447.html
Copyright © 2011-2022 走看看