数字图象处理之二维码图像提取算法(八)

2023-11-02

PDF417 码几何失真的校正:

(1)每个 PDF417 条码都包含一个起始符和终止符,且其模块比例是固定的。 利用这个特性,可以采取扫描条码左右边缘点,能后采用直线拟合方法来确定条码的左右边缘直线。Hough 变换中获得的条码横向边界直线,可以得到四个交点,这四个交点就是 PDF417 条码的四个顶点,将其作为几何畸变校正的四个控制点。具体步骤如下:1) 从 PDF417 码第一行开始,从左到右,从上到下扫描符合 PDF417 码起始符模块比例( 8:1:1:1:1:1:1:3) 图案,并记录下每行起始符开始点的位置信息, 得到一系列条码边缘点, 利用最小二乘法,对这些点进行曲线拟合求取左边界的直线方程。2) 类似第一步,从右到左扫描记录下终止符结束点的位置信息,得到右边界直线方程。3) 结合Hough 变换求得的上下边界直线方程,求四条直线的交点

(2)进行校正:

  

    为尽量减小转换带来的图像质量下降问题,选取畸变图形两条对角线的交点作为图像的中心点,转换前后中心点位置不变。校正图像的长宽分别由上下边界的平均值和左右边界的平均值来确定,由此可以确定校正后图像的四个顶点位置。 几何畸变校正变换后, 部分变换后像素点坐标会出现为浮点值的情况, 需要进行插值运算, 由于此时已经是二值图像,双线性插值不能够体现出其优势,而最邻近插值计算量小的特性在这里反而得到突出,因此本项目选用最邻近插值来进行灰度内插。

    接着进行码字提取,如下图:

    



    总结用分级的Hough变换算法检测PDF417条码的倾斜角度并将条码旋转到水平状态。对于可能发生的几何形变也给出了相应的几何校正算法,复原图像。得到一幅规整图像后,采用水平和垂直投影算法,对 PDF417 码进行码字分割。最后根据条码的编码规则,计算条码中每个码字的条空系列,得到整个条码的码字信息,将这些码字信息查表,纠错译码就能得到条码图像中包含的文字或图片信息。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字图象处理之二维码图像提取算法(八) 的相关文章

  • 「数字信号处理」采样过程与内插恢复完整图解

    内插与采样的关系 来源 xff1a 数字信号处理 采样与内插 DSP期末知识点题型4 哔哩哔哩 bilibili
  • 数字信号处理(一)利用FFT对信号进行频谱分析

    数字信号处理 一 利用FFT对信号进行频谱分析 1 实验目的 1 进一步加深DFT算法原理和基本性质的理解 因为FFT只是DFT的一种快速算法 所以FFT的运算结果必然满足DFT的基本性质 2 熟悉FFT算法原理和FFT程序的应用 3 学习
  • 数字图像处理之配置opencv中遇到的问题

    现在网络上有很多的教程 上面有配置opnecv的教程有很多 综合其中的优点便可以配置成功 参考教程 配置系统变量 http wenku baidu com link url 8J6XO19h3dncpZRXgAY JBmpsgVsNtZEs
  • 数字信号处理:重要知识点整理

    文章目录 0 最重要 DFT和FFT的区别 1 连续时间信号频域分析 2 通过离散时间信号的Z变换表达式X z 直接写出时域离散信号 序列 x n 的方法 3 部分分式法的MATLAB实现 求X z 的部分展开式 4 稳定系统 5 求频响特
  • 数字信号处理知识点

    数字信号处理知识点 1 频谱图中 横坐标取值范围的含义 2 MATLAB常用函数 2 1 波形产生 2 2 滤波器分析 2 3 滤波器实现 2 4 线性系统变换 2 5 滤波器设计 2 5 1 FIR滤波器 2 5 2 IIR滤波器 2 6
  • 基于线性预测的语音编码原理解析

    早期的音频系统都是基于声音的模拟信号实现的 在声音的录制 编辑和播放过程中很容易引入各种噪声 从而导致信号的失真 随着信息技术的发展 数字信号处理技术在越来越多领域得到了应用 数字信号更是具备了易于存储和远距离传输 没有累积失真 抗干扰能力
  • 从控制理论的根轨迹法和稳定性分析谈到舵机PD控制代码实现

    在上一次谈到基于MPU6050的基于一阶互补滤波算法实现后 本来想接着就自适应一阶互补滤波和卡尔曼滤波再写一篇的 但是卡尔曼滤波算法我自己写出来并进行姿态解算后发现效果不很好 才疏学浅 等我调好了再写吧 昨天花了半下午做了一个基于MPU60
  • 数字信号处理技术(二)变分模态分解(VMD)-Python代码

    本文仅对变分模态分解 VMD 的原理简单介绍和重点介绍模型的应用 1 VMD原理 变分模态分解 VMD 的原理在此不做详细介绍 推荐两个不错的解释参考连接 变分模态分解原理步骤 和VMD算法的介绍 官方源码 2 VMD应用实战 2 1 简介
  • 常用序列的MATLAB代码(一)

    1 典型序列函数 1 单位冲激序列 function x n impseq n0 ns nf ns 序列的起点 nf 序列的终点 n0 序列在n0处有一个单位脉冲 x 产生的单位采样序列 n 产生序列的位置信息 n ns nf x n n0
  • 深入理解采样定理 + Matlab 仿真 Sa 函数的采样与恢复

    建议配合国宝老师的视频食用 信号与线性系统分析 吴大正 郭宝龙 文章目录 1 采样的说明 1 为什么要取样 2 什么是取样 2 采样定理 1 为什么要有奈奎斯特频率 2 什么是采样定理 3 信号的恢复 4 Matlab的Sa函数取样仿真 1
  • 数字信号处理第一次试验:系统响应及系统稳定性

    数字信号处理第一次试验 系统响应及系统稳定性 前言 一 实验目的 二 实验原理与方法 三 实验环境 四 实验内容及步骤 五 实验结果截图 含分析 六 思考题 七 实验报告要求 前言 为了帮助同学们完成痛苦的实验课程设计 本作者将其作出的实验
  • Cadence Allegro 软件使用技巧_导入导出DXF

    Allegro中导入导入导出DXF简介 一 Allegro导入DXF文件 在进行PCB设计时 需要考虑结构要求 其要求就会体现在结构文件中 一般Allegro软件的结构文件为DXF DXF文件中包含PCB板外形 定位孔位置大小 关键器件位置
  • 毕业设计记录-matlab自动生成并标注时频图数据集

    文章目录 2022 1 8日的记录 2022 1 8日的记录 陆陆续续几天 玩中带做终于是写好了一个基本的雏形 以后想往里面添加东西就好添了 首先是文件功能描述 caogao caogao 草稿 写程序调试代码的地方 CreateSigna
  • 错误隐藏学习手记(二)

    错误隐藏技术是在H 264在解码端后端的一种技术 用于恢复某一丢失帧或者宏块 一般来说每个宏块是16 16 Step1 我们怎么知道是哪一块宏块丢失了呢 这就和视频编解码H 264有些关系了 JM86中丢失块的确定取决于编码端灵活宏块重排模
  • 过采样和欠采样

    一 采样定理 只要采样频率高于信号最高频率的两倍 就可以从采样信号中恢复出原始信号 二 过采样和欠采样 1 采样频率高于信号最高频率的两倍 这种采样被称为过采样 2 采样频率低于信号最高频率的两倍 这种采样被称为欠采样 三 基带信号和频带信
  • 数字图像处理之浮雕效果——基于傅里叶变换的频域操作

    问题简述 这是信号与系统课程的一个课后作业 要求运用傅里叶变换的理论知识 在matlab中对数字图像进行浮雕效果的处理 浮雕效果和图像边缘的检测差不多 学习过深度学习的同学可能会想到使用核对图像进行卷积操作 吴恩达老师在DeepLearni
  • 错误隐藏学习手记(五)

    在H 264的研究中 我们可以看到目前有三种开源编码 很多测试都是在一个开源编码中实现的 这个开源编码就叫做 JM86 在这里呢具体介绍一下这三种开源编码 一 三大开源编码器介绍 1 JM H 264的官方测试源码 由德国hhi研究所负责开
  • 随机信号分析实验(matlab仿真实验)

    一 实验内容 1 产生均匀分布的随机数 高斯分布的随机数和其他分布 瑞利 卡方 的随机数及画图 对生成的随机数进行分析 2 检验 1 中产生的均匀分布 高斯分布的数学期望和方差 并画出各种分布的随机变量的概率密度直方图 3 两组及多组独立的
  • OpenCV之摄像头捕捉图像

    代码 数据类型 运行效果 代码 之前我找过directshow CameraDS VedioCaptureFromCam之类的东西 发现都不可以用 directshow是因为版本太老了 会出现 http www opencv org cn
  • 用matlab绘制系统函数的DTFT

    freqz函数 frequency response of digital filter 对于一个输入离散序列 输出离散序列的离散时间系统 我们可以用它的系统函数H Z 来描述这个系统 求这个系统函数的DTFT 可以得到这个系统的幅频响应和

随机推荐

  • 【 OJ 】 HDOJ1052 贪心模拟田忌赛马 [ 46 ]

    转自 https www cnblogs com Open Source archive 2010 07 09 1904940 html 解题思路 贪心算法 根本思想是要让田忌花最小的代价来胜一每一场 让齐王花最大的代价来胜每一场 代价 可
  • 怎样用matlab产生泊松分布随机数

    random Poisson Lambda random Poisson Lambda m n 泊松分布的参数为Lambda 如果只产生一个随机数就是第一句的样子第二行的语句表示会产生m n个随机数 且这些随机数组成了m行n列的矩阵matl
  • C++基础知识 - 类模板与友元函数

    类模板与友元函数 Demo h pragma once template
  • SSM框架整合&配置环境&简单测试

    项目结构目录 第一步 导入ssm框架所需坐标 比如spring springmvc mybatis
  • 电子合同 数字签名项目记录

    项目页面 项目实现遇到的问题 在开发过程中遇到两个问题 前台 后台的签字展示大小和签字图片和合同原件合并的字体生成大小 签字生成的图片大小 最小化 不能是canvas画布的大小 第一个问题 针对第一个问题 如果不解决这个问题 在签字页面展示
  • Java学习之旅基础知识篇:面向对象之封装、继承及多态

    Java是一种面向对象设计的高级语言 支持继承 封装和多态三大基本特征 首先我们从面向对象两大概念 类和对象 也称为实例 谈起 来看看最基本的类定义语法 命名规则 类名 首字母大写 多个单词组合时每个单词首字母大写 单词之间不加任何连接符号
  • vue axios 阻塞未完成请求

    import from lodash import axios from axios const CancelToken Cancel axios const tokens 请求前处理 config 尽可能在最先注册的拦截器中调用 para
  • ThreeJS-3D教学一基础场景创建

    Three js 是一个开源的 JS 3D 图形库 用于创建和展示高性能 交互式的 3D 图形场景 它建立在 WebGL 技术之上 并提供了丰富的功能和工具 使开发者可以轻松地构建令人惊叹的 3D 可视化效果 Three js 提供了一套完
  • 深入完整的带你了解java对象的比较

    目录 元素的比较 1 基本类型的比较 2 对象比较的问题 1 运行结果 2 疑问 3 原因 对象的比较 1 覆写基类的equals 2 基于Comparble接口类的比较 3 基于比较器比较 4 三种方式对比 元素的比较 1 基本类型的比较
  • 棋子翻转---- 美团2016研发工程师在线编程题

    编程题 棋子翻转 在4x4的棋盘上摆满了黑白棋子 黑白两色的位置和数目随机其中左上角坐标为 1 1 右下角坐标为 4 4 现在依次有一些翻转操作 要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转 请计算出翻转后的棋盘颜色 给定两个
  • Rust 中的注释

    Rust 中的注释分为两种 普通注释 仅做注释用 在编译时编译器会忽略它们 文档注释 可以通过命令生成 HTML 帮助文档 普通注释 Rust 的普通注释与 C 的风格一样 分为 单行注释 以 开头 后的内容都会被注释掉 块注释 可以注释多
  • fanuc机器人示教器输入中文注释

  • VScode+gcc编译环境搭建

    VScode gcc编译环境搭建 VScode下载 GCC安装 可能出现的问题 一些IDE集成开发环境占用内存大 体量大 比如Visual studio Visual Studio Code 简称 VS Code VSC 是一款免费开源的现
  • 双网卡上网的问题

    相信很多人都有和笔者一样的经历 由WIN XP构成的网络所有设置和由WIN 2000构成的完全一样 但还是出现了根本不能访问的情况 笔者认为这主要是因为XP的安全设置和2000不一样所导致 针对这个问题笔者在网上查了一些资料 并将各种网上提
  • C语言学习--------修改控制台输出文字颜色

    开发工具CLion 运行环境 Win10LTSC2021 操作描述 引入头文件 include
  • lua执行系统命令

    Lua中 系统库函数有 OS functions os clock os date os difftime os execute os exit os getenv os remove os rename os setlocale os t
  • MySQL数据库事务隔离级别(Transaction Isolation Level)

    今天在学习JDBC的时候看到了关于MySql的事务的隔离级别的问题 感觉内容挺高级的 所以记录一篇文章 以备后面使用 数据库隔离级别有四种 应用 高性能mysql 一书中的说明 然后说说修改事务隔离级别的方法 1 全局修改 修改mysql
  • 【Web】HTML标签:表格。(1)作用:用于显示、展示数据(2)语法<table></table>是用于定义表格的标签<tr></tr>标签用于定义表格中的行,必须嵌套在<table>

    表格 1 作用 用于显示 展示数据 2 语法 table table 是用于定义表格的标签 标签用于定义表格中的行 必须嵌套在 table table 标签中 用于定义表格中的单元格 必须嵌套在标签中 字母td指表格数据 table dat
  • 机器学习(一)——线性回归介绍及案例实战(Python实现)

    目录 前言 一 线性模型介绍 二 一元线性回归 1 介绍 2 案例 3 模型优化 总结 前言 线性回归模型是机器学习中非常基础且经典的模型 是利用线性拟合的方式探寻数据背后的规律 特征变量的个数可将线性回归模型分为一元线性回归和多元线性回归
  • 数字图象处理之二维码图像提取算法(八)

    PDF417 码几何失真的校正 1 每个 PDF417 条码都包含一个起始符和终止符 且其模块比例是固定的 利用这个特性 可以采取扫描条码左右边缘点 能后采用直线拟合方法来确定条码的左右边缘直线 Hough 变换中获得的条码横向边界直线 可