[发明专利]一种基于FPGA的QR码位置探测图形定位方法有效

专利信息
申请号: 202011484527.8 申请日: 2020-12-16
公开(公告)号: CN112541370B 公开(公告)日: 2022-03-15
发明(设计)人: 翟亚红;杨锋;杜涛;李威;曹飞飞 申请(专利权)人: 电子科技大学
主分类号: G06K7/14 分类号: G06K7/14
代理公司: 电子科技大学专利中心 51203 代理人: 吴姗霖
地址: 611731 四川省成*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 fpga qr 位置 探测 图形 定位 方法
【权利要求书】:

1.一种基于FPGA的QR码位置探测图形定位方法,其特征在于,具体包括以下步骤:

S1、利用摄像头实时采集QR码图像,图像尺寸为M*L,M表示图像矩阵列数,L表示图像矩阵行数;

S2、对图像矩阵建立直角坐标系:以图像矩阵左上角像素点为原点,水平向右方向为x轴,水平向下方向为y轴,其中,0≤x≤M-1,0≤y≤L-1;

S3、对采集的QR码图像进行灰度化处理,将像素点的位宽压缩至8比特;

S4、对步骤S3灰度化处理后的图像进行中值滤波处理,消除图像中的噪声;

S5、利用Kittler阈值法对中值滤波后的QR码图像进行二值化,利用第i帧图像计算得到的最佳阈值为第i+1帧图像二值化;

S6、接收任意一帧二值化后的串行图像比特流,经串并转换后,以N位像素块为单位存入图像缓存RAM中;

S7、对步骤S6接收的整帧图像行扫描,得到满足位置探测图形特征的疑似点信息;具体过程为:

假设C1-C6分别表示6条子线段的颜色,S1-S6分别表示6条子线段起点的x坐标,L1-L6分别表示6条子线段的长度,疑似点数量的上限值为T;MEM1用于存储行疑似点信息,深度为T,位宽为A表示行疑似点索引号,初始值为0,每扫描到一个疑似点则自增1;MEM2存储每一行扫描完成后的最新索引号,深度为L,位宽为表示向下取整;

S7.1、开始扫描前,x=y=0,A置为0,C1-C6全部置为0,S1-S6全部置为0,L1-L6全部置为0;

S7.2、横坐标x=0~(M-2),若二值化后像素点的值G(x,y)=C6,则L6=L6+1;若G(x,y)≠C6,则将C2、C3、C4、C5、C6分别赋值给C1、C2、C3、C4、C5,C6取反,S2、S3、S4、S5、S6分别赋值给S1、S2、S3、S4、S5,S6=x,L2、L3、L4、L5、L6分别赋值给L1、L2、L3、L4、L5,L6=1,同时判断赋值后的五条子线段是否满足位置探测图形特征:判断C1-C5的值是否分别为0、1、0、1、0,若不是,忽略,继续扫描;若是,则判断L1:L2:L3:L4:L5是否满足(0.5-1.5):(0.5-1.5):(2-4):(0.5-1.5):(0.5-1.5),若满足,则将C1-C5这五条子线段组成的长线段的中心横坐标和行扫描长度S6-S1存储至MEM1的地址A处,然后将索引号A自增1,若不是,则忽略,继续扫描;

S7.3、若最后1个像素点的值G(M-1,y)=C6,则将C2、C3、C4、C5、C6分别赋值给C1、C2、C3、C4、C5,S2、S3、S4、S5、S6分别赋值给S1、S2、S3、S4、S5,S6=M,L2、L3、L4、L5、L6+1分别赋值给L1、L2、L3、L4、L5;若G(M-1,y)≠C6,则将C2、C3、C4、C5、C6分别赋值给C1、C2、C3、C4、C5,S2、S3、S4、S5、S6分别赋值给S1、S2、S3、S4、S5,S6=M-1,L2、L3、L4、L5、L6分别赋值给L1、L2、L3、L4、L5;然后判断赋值后的五条子线段是否满足位置探测图形特征:判断C1-C5的值是否分别为0、1、0、1、0,若不是,忽略,继续扫描;若是,则判断L1:L2:L3:L4:L5是否满足(0.5-1.5):(0.5-1.5):(2-4):(0.5-1.5):(0.5-1.5),若满足,则将C1-C5这五条子线段组成的长线段的中心横坐标和行扫描长度S6-S1存储至MEM1的地址A处,然后将索引号A自增1,若不是,则忽略,继续扫描;

S7.4、将得到的最新索引号A存储至MEM2中的地址y处,若y=L-1,则进入步骤S8;否则,令y=y+1,将C1-C6全部置为0,S1-S6全部置为0,L1-L6全部置为0,然后跳转到步骤S7.2;

S8、对图像进行列扫描,并判断位置探测图形中心,具体过程为:

假设Cm1-Cm6分别表示列扫描过程中6条子线段的颜色,Sm1-Sm6分别表示6条子线段起点的y坐标,Lm1-Lm6分别表示列扫描中6条子线段的长度,m=x%N;6个存储器Q1-Q6分别对应存储1条子线段的Cm、Sm、Lm信息,每个存储器的位宽为深度为N;MEM3用于存储列扫描中的疑似点信息,深度为N,位宽为NUM记录扫描到的疑似点数量,POS记录扫描到的疑似点对应的列;

S8.1、对图像的x~x+N-1列同时进行扫描,开始扫描前,令x=y=0,NUM=0,POS每一位置为0,Cm1-Cm6全部置为0,Sm1-Sm6全部置为0,Lm1-Lm6全部置为0;

S8.2、读取Q1~Q6中地址m=x%N存储的扫描信息,若二值化后像素点的值G(x,y)=Cm6,则Lm6=Lm6+1;若G(x,y)≠Cm6,则将Cm2、Cm3、Cm4、Cm5、Cm6分别赋值给Cm1、Cm2、Cm3、Cm4、Cm5,Cm6取反,Sm2、Sm3、Sm4、Sm5、Sm6分别赋值给Sm1、Sm2、Sm3、Sm4、Sm5,Sm6=y,Lm2、Lm3、Lm4、Lm5、Lm6分别赋值给Lm1、Lm2、Lm3、Lm4、Lm5,Lm6=1,同时判断赋值后的五条子线段是否满足位置探测图形特征:判断Cm1-Cm5的值是否分别为0、1、0、1、0,若不是,忽略,继续扫描;若是,则判断Lm1:Lm2:Lm3:Lm4:Lm5是否满足(0.5-1.5):(0.5-1.5):(2-4):(0.5-1.5):(0.5-1.5),若满足,则这五条子线段组成的长线段满足位置探测图形特征,若不是,则忽略,继续扫描;将满足位置探测图形特征的长线段的中点对应的横坐标x、纵坐标和行扫描长度Sm6-Sm1存储至MEM3的地址x%N处,NUM自增1;将POS的第x%N位置为1,然后将更新后的Cm1-Cm6、Sm1-Sm6、Lm1-Lm6写回Q1-Q6的地址m=x%N处;当x%N=N-1时,进入步骤S8.3,否则令x=x+1,重复步骤S8.2的过程;

S8.3、判断NUM的值是否为0,若为0表示疑似点数量为0,若y=L-1且x=M-1,跳转到步骤S8.8;若y=L-1,令y=0,x=x+1,将6个存储器Q1-Q6中存储的Cm、Sm、Lm初始化为0,进行下一个N列的扫描,跳转到步骤S8.2;若y≠L-1,则令y=y+1,x=x-N+1,跳转到步骤S8.2;若NUM≠0,寻找POS中置1的位,将NUM的值自减1,进入步骤S8.4;

S8.4、读取MEM3地址为POS置1的位对应的列扫描疑似点信息,假设读取的横坐标、纵坐标、列扫描长度分别为x1、y1、LY,进入步骤S8.5;

S8.5、读取MEM2的地址y1-1和y1存储的索引号A0和A1,若A0=A1,跳转到步骤S8.3;若A0A1,进入步骤S8.6;

S8.6、读取MEM1地址为索引号A0处存储的行疑似点信息,假设其横坐标为x2,行扫描长度为LX,进入步骤S8.7;

S8.7、若x2x1,跳转到步骤S8.3;若x2=x1,记录其横坐标x1、纵坐标y1、行扫描长度LX、列扫描长度LY,跳转到步骤S8.3;若x2x1,将索引号A0自增1,若此时A0A1,跳转到步骤S8.6,若此时A0=A1,跳转到步骤S8.3;

S8.8、核对记录的位置探测图形中心数量是否为3,若是,则进入步骤S9;否则,跳转到步骤S6缓存一帧新图像重新扫描;

S9、输出3个位置探测图形的中心坐标和扫描长度,包括横坐标、纵坐标、行扫描长度和列扫描长度。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011484527.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top