zoukankan      html  css  js  c++  java
  • 用halcon提取衣服徽章

    收到一封email,有个学员求助去除衣服上纹理的干扰,然后提取衣服上徽章的边缘的方法。
     
    我想他肯定是个很努力上进的boy,在求助以前也许已经试过各种方法,通过二值化不断的调试阈值,
     
    寻找各种边缘检测的算子不断的实验,或者更高阶的用FFT试图去掉背景等等,我想起了我刚入门的时候
     
    那股不达目的绝不罢休的狠劲,在网络上或者图书馆搜索相关的书籍, 试图找到答案,然而受制于自身知识体系的不完善,
     
    并不能得到满意的答案。所以在忙完手头的工作,我认真的看了他的需求,并回复了几种方法供其参考。
     
     
    来信:
     
    小马哥,你好!
     
       我是Halcon的初学者,看了你们的免费视频和实战讲解系列视频。现在有个问题想向你寻求一下帮助,我想去除衣服上纹理的干扰,
     
       然后提取衣服上图案的边缘,请问该如何做?希望你能在百忙之中抽空给予我一些帮助,十分感谢!
     
     
    回信:
     
    你好:

          工作繁忙,今日才得空仔细看你的邮件。
     
          一、不知道你提取一幅徽章的目的,如果是要匹配定位会有更好的方法,这里先不说此。
     
          二、根据你的需求列出几种方法供你参考
     
            2.1  省力的方法,借助halcon的边缘提取 edges_color_sub_pix
                 
                   这种方法需要设置合适的 filtersize 和 low high阈值
     
                   下图是edges_color_sub_pix(Image, Edges, 'canny', 15, 40, 60)的效果
                 
            
     
        2.2 加大点难度,放入一些自己的思考进去
           
             对于彩色图像,彩色信息是一个不容忽视的有利条件。
             
             我们将其转入 HSV空间 取 S通道 ,至于何为HSV ,为何取S通道,可看我的基础课程。
     
             decompose3(Image, r, g, b)
     
             trans_from_rgb(b, g, r, h, s, v, 'hsv')
     
             S通道是这样的
     
             
     
            做简单二值化
     
            
         
     
      2.3 相对于2.2思考的更多一些
     
            从rgb通道入手,根据通道运算去除纹理。
     
           放入halcon中处理的效果,代码为
     
           sub_image(b, g, ImageSub, 1, -40)
     
           
     
           二值化后结果
     
          
     
         至于用FFT去除纹理的方法太过繁琐,效果有不会好,不做介绍。
     
         最后希望你自己体会、琢磨,世上无难事只怕有心人
     
    祝:工作顺利,身体健康
     
    小马_xiao
     
     
     
    关注微信:halconhub,每日获取halcon精华文章
     
     





    附件列表

  • 相关阅读:
    ShowModalDialog的一个Demo
    DockPanel的一点点改进
    使用Ado.net获取数据库架构信息
    华为离职感受
    一个简单的LINQ TO SQL的三层架构的例子
    [CSharp]volatile访问修饰方法定义
    [JWS]JavaScript访问AD,查用户所属的组
    [WCF]相关资料整理
    [CSharp]使用MSSOAPLib30调用WS的身份验证问题
    [Linux]使用光驱
  • 原文地址:https://www.cnblogs.com/xiaomaLV2/p/5472555.html
Copyright © 2011-2022 走看看