OpenCV条形码识别模块原理和代码精讲

掌握条形码识别原理,研读优秀代码,提高综合水平

518人学习

中级11课时2021/11/19更新

二维码下载学堂APP缓存视频离线看

禾路
    • 畅销套餐
    • 精选套餐
    • 人气套餐
    • 尊享套餐
    • 高薪套餐
  • 课程介绍
  • 课程大纲

适合人群:

图像处理工程师、相关专业学生、希望编写实际图像处理项目的开发者

你将会学到:

掌握条形码识别原理,研读优秀代码,提高综合水平

课程简介:

    本课程分享对由中国开发者提供的OpenCV条形码识别模块的原理和代码精讲。该模块借鉴“目标识别”领域先进理念,采用“定位-识别”二段模式,有效提高了自然环境下条码识别的准确率并保持了C++代码的高速度,相比较常用的zxing和zbar在准确率和识别速度上均有较大优势。更难得可贵的是在代码的实现过程中能够注意细节,在诸如“循环测试确定参数数值”“积分图的使用”“倾斜矩形纠偏”等处,均提供了思路清晰、弹性高的优质代码。作为一套通过了OpenCV官方的代码检验、解决一个常用领域内具体问题的模块,对于图像处理学习来说是难得可贵的。


1.png

                                                                            (条码定位Pipline)

 2.png

                                                                           (条码识别Pipline)


    逐条进行代码解读繁琐且低效,个人认为,在图像处理领域,能够运行和修改观察的代码对于学习研究至关重要。在理论剖析部分,也是由应用引导原理。同时做好知识的迁移和代码的复用工作。在这个过程中,创建针对性的实验非常重要。

3.png

                                                                         (专用腐蚀对比图例)


 课程内容分为4个部分:

一是基本配置,包括

· 条形码识别模块的安装使用 (cmake配置和OpenCV编译);

· 构建用于测试和代码阅读的环境;

· 模块对官方数据集的测试;

4.PNG

                                                                    (数据集测试图例)

二是条码定位,将详细讲解思路、原理和实现

5.PNG

                                                                (不同尺度下的梯度方向一致性结果)

知识迁移部分将简单说一下在毛发识别上的迁移:

6.jpg

三是条码识别,该部分内容会首先梳理框架,而后具体进行分析讲解

8.png

                                                                         (条码识别类图)

    此外,我们将结合例子,将OpenCV的基础功能,包括积分图像、形态学变化、联通区域、透视变化等进行复习,加深理解。

                                                                            (透视变化)

                                                                                 (形态学)

                                                                               (联通区域)

                                                                                   (积分图)

.END


展开更多

课程大纲-OpenCV条形码识别模块原理和代码精讲

  • 1

    L1_课程简介和特点分析1、条码识别模块是非常有学习参考价值的模块;2、课程按照4个部分(环境构建、条码定位、条码识别、代码复用)来进行组织;3、cmake配置和OpenCV编译主要遵循“2次Config、1次generate”的方式进行;4、后面的课程将首先搭建一个可以独立运行的环境,而后主要按照识别流程进行代码解析。

    「仅限付费用户」点击下载“L1_课程简介和特点分析.rar”

    [23:33]
  • 2

    L2_构建用于测试和代码阅读的环境内容:1、构建用于测试和代码阅读的环境;2、对官方数据集进行测试;3、要注意调通现有代码。重点:1、基于3步法搭建OpenCV运行环境,这种方法是普遍适用的;2、对官方数据集进行了测试运算,这种实验的思想值得借鉴;3、看一看现有的数据集都包含了那些数据,自己采集现实数据测试

    「仅限付费用户」点击下载“L2_构建用于测试和代码阅读的环境.rar”

    [23:00]
  • 3

    L3_条码定位的图像预处理内容:1、定位总体思路;2、图像预处理;3、积分图像基础;4、积分图像用于预处理的重点:1、总体PipleLine的理解;2、图像一阶导数的计算;3、积分图的使用

    「仅限付费用户」点击下载“L3_条码定位的图像预处理.rar”

    [21:37]
  • 4

    L4_条码定位的平均梯度方向内容:1、解决条码定位的老方法2、平均梯度方向概念的提出 3、梯度方向一致性的运算方法重点:1、平均梯度方向和梯度方向一致性2、在理论转化到代码中的过程3、显示运算结果,观看理解运算过程

    「仅限付费用户」点击下载“L4_条码定位的梯度方向一致性计算.rar”

    [21:00]
  • 5

    L5_条码定位的形态学变化和区域联通1、改进的的腐蚀操作;2、基于方向一致性的图像块区域生长算法;3、条码的倾斜矫正

    「仅限付费用户」点击下载“L5_条码定位的形态学变化和区域联通.rar”

    [26:00]
  • 6

    L6_条码定位的知识迁移1、算法在毛发识别上的应用2、算法框架的启发3、值得复用的函数

    「仅限付费用户」点击下载“L6_条码定位的知识迁移.rar”

    [14:21]
  • 7

    L7_条码识别(译码)的总体框架内容:1、几种常用条码和EAN-13 ;2、条码识别(译码)的总体框架;3、条码数据初始化;重点:1、常用条码的定义方法;2、总体框架PipleLine;3、透视变化的基本方法。

    「仅限付费用户」点击下载“L7_条码识别(译码)的总体框架.rar”

    [18:14]
  • 8

    L8_(微信团队提供的)超分辨率算法初步研究内容:1、超分辨率的介绍2、cv.dnn的提及3、微信团队提供的超分算法测试和调用重点:1、能够成功调用cv.dnn2、能够将超级分辨率算法独立出来

    「仅限付费用户」点击下载“L8_微信团队提供的超分辨率算法初步研究.rar”

    [23:31]
  • 9

    L9_条码识别(译码)的具体过程内容:1、条码识别(译码)代码结构;2、二值化方法两种方法互为补充;3、decodeROI和decodeLine具体识别;4、parallel_for_知识补充。重点:1、hybrid_binarizer实现局部二值化方法;2、 parallel_for_的使用场景。

    「仅限付费用户」点击下载“L9_条码识别(译码)的具体过程.pptx”

    [22:09]
  • 10

    L10_EAN_13基于模板识别的解码实现内容:1、解码类框图插件安装2、解码类框图具体认知3、解码类代码结构4、关键函数解释重点:关键函数中具体实现;

    「仅限付费用户」点击下载“L10_EAN_13基于模板识别的解码实现.rar”

    [31:18]
  • 11

    L11_典型思路回顾和代码复用1、条码识别的知识迁移2、人造物理世界3、场景化代码解读方法4、二步法定位识别过程5、全课程值得复习的知识

    「仅限付费用户」点击下载“L11.rar”

    [19:41]
在线
客服
APP
下载

下载Android客户端

下载iphone 客户端

官方
微信

关注官方微信

返回
顶部