收到一封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精华文章
 
 

附件列表

用halcon提取衣服徽章的更多相关文章

  1. Halcon编程-基于形状特征的模板匹配

    halcon软件最高效的一个方面在于模板匹配,号称可以快速进行柔性模板匹配,能够非常方便的用于缺陷检测.目标定位.下面以一个简单的例子说明基于形状特征的模板匹配.      为了在右图中,定位图中的三 ...

  2. halocn/C++ (第一篇)

        在使用C++编写halcon之前,确定自己有较好的C++基础,并熟悉一套开发平台如VC   Programmers_guide.pdf chapter7中有关于creating Aplicat ...

  3. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

  4. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数017·point点函数

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数017·point点函数 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...

  5. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数016,xld,xld轮廓

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数016,xld,xld轮廓 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“ ...

  6. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数014,tuple,元组

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数014,tuple,元组 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...

  7. halcon算子

    halcon的算子列表   Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样 ...

  8. Halcon编程-基于纹理的mara检测

    表面瑕疵检测是机器视觉领域非常重要的一个应用.机器视觉是集光学.机电和计算机三个领域的一门不算新的技术.但目前表面瑕疵检测在学界主要是计算机专业或者控制专业瞄准图像处理方向在做,而视觉光学系统这一块主 ...

  9. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数013,shape模型

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数013,shape模型 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“pr ...

随机推荐

  1. mysql数据库建模Navicat

    用Navicat制作ER图及与SQL互相转化 http://wangbaiyuan.cn/sql-and-use-navicat-to-make-er-diagram-and-interactive. ...

  2. mysql 约束条件 primary key 主键

    primary key字段的值不为空且唯一 约束:not null unique 存储引擎:innodb 对于innodb来说,一张表内必须有一个主键 单列做主键多列做主键(复合主键) 通常都是id字 ...

  3. mysql 数据操作 单表查询 练习

    查出所有员工的名字,薪资,格式为 <名字:egon>,<薪资:3000> mysql> select concat('<姓名:',name,'>') as n ...

  4. 101-advanced-React易用性,概述

    React完全支持构建可访问的网站,通常使用标准的HTML技术. 1.可访问小部件 ARIA文档包含用于构建完全可访问的JavaScript小部件的技术. JSX完全支持所有aria- * HTML属 ...

  5. SpringBoot开启缓存注解

    https://blog.csdn.net/sanjay_f/article/details/47372967 https://www.cnblogs.com/lic309/p/4072848.htm ...

  6. 使用scikit-learn 估计器分类

    本章的几个概念: 估计器(estimator) 用于分类.聚类和回归分析          转换器(transformer):用于数据预处理回来数据转换          流水线(pipeline): ...

  7. flask 上下文管理 &源码剖析

    基本流程概述 - 与django相比是两种不同的实现方式. - django/tornado是通过传参数形式实现 - 而flask是通过上下文管理, 两种都可以实现,只不实现的方式不一样罢了. - 上 ...

  8. 程序员:统治世界or修复bug?

    程序员:统治世界or修复bug? 时至今日,我们依然生活在一个市场和技术受到高度崇拜的世界里,但是历史演化的规律提醒着我们:当一个东西开始成为社会崇拜的对象时,其中暗藏的不利因素将悄然的进行着.有人认 ...

  9. poj1434 Fill the Cisterns!

    地址:http://poj.org/problem?id=1434 题目:Fill the Cisterns! Fill the Cisterns! Time Limit: 5000MS   Memo ...

  10. JAVA volatile 解析

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...