用halcon提取衣服徽章

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

      工做繁忙,今日才得空仔细看你的邮件。
 
      1、不知道你提取一幅徽章的目的,若是是要匹配定位会有更好的方法,这里先不说此。
 
      2、根据你的需求列出几种方法供你参考
 
        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精华文章
 
 





附件列表

相关文章
相关标签/搜索