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)的效果

image.png

2.2 加大点难度,放入一些自己的思考进去
       
         对于彩色图像,彩色信息是一个不容忽视的有利条件。
         我们将其转入 HSV空间 取 S通道 ,至于何为HSV ,为何取S通道,可看我的基础课程。
         decompose3(Image, r, g, b)
         trans_from_rgb(b, g, r, h, s, v, 'hsv')
         S通道是这样的

image.png

做简单二值化

image.png

2.3 相对于2.2思考的更多一些
        从rgb通道入手,根据通道运算去除纹理。
       放入halcon中处理的效果,代码为
       sub_image(b, g, ImageSub, 1, -40)


image.png

二值化后结果

image.png

至于用FFT去除纹理的方法太过繁琐,效果有不会好,不做介绍。
     最后希望你自己体会、琢磨,世上无难事只怕有心人


本文转载自: https://www.cnblogs.com/xiaomaLV2/p/5472555.html


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864