solution_guide_ii_c_2d_data_codes[Chapter 4]

欢迎关注

在这里插入图片描述
修改模型参数获得不同的模型,主要有两个主要目的。全局参数的设置主要目的就是增加参数范围,以便能读取大部分的二维码。另外一个目的是限制模型范围,以便能够提高运行速度。此外,如果一个二维码如果在增强模式下不能读取,即便修改参数,大概率也不能读取[除了50页列举的少数情况]。增强模式下,读取二维码失败有多种原因:可能有多种不能修复的变形[在5.2;45页有介绍],可以能是不好的图片质量或者二维码外观。这些问题都应当尽量在采集图像时候避免。如果无论怎样,你都需要处理一些不好的图片质量的二维码,那么下面的问题,你可以有机会通过前处理来解决。然后再使用算子[find_data_code_2d]。

  • 二维码不能被读取,是因为倾斜度超过了允许的倾斜角 见章节4.1
  • 矩阵码的模组间隙超过了允许的模组间隙 见章节 4.2
  • 有很多的噪点,以至于二维码的前景和背景不能很好的分辨

倾斜的二维码

在这里插入图片描述
章节3.3 在22页有提到,Data Matrix的L形的查找图案的小的倾斜角是允许的。对于其他各种二维码[PDF417, QR Code Micro QR Code以及Aztec Code轻微的方位畸变和轴向畸变也可以读取。但是较大的倾斜角会造成所有的二维码不可读。如果二维码由于轴向畸变或者方位畸变被严重歪曲。PDF417,QR Code, Micro QR Code ,Aztec Code 无法被解码,Data Matrix甚至无法被识别成二维码。如果必须要识别这些二维码,你需要在应用算子[find_data_code_2d]读取前校正这些图像。如果你有一系列的倾斜的二维码,我们建议标定校正。标定相关信息见 Solution Guide III-C 3.4章节 91页。对于单张或者图片在同一个平面的,Halcon案例[hdevelop\Identification\Data-Code
2d_data_codes_rectify_symbol.hdev]提供了一个迅速的解决方案来校正方位偏差。
在这里插入图片描述
读取一个倾斜的二维码后,我们通过HDevelop的在线缩放工具,获得二维码的4个角的像素坐标,然后我们定义校正后的二维码的4个角的坐标。校正后二维码的形状依据于特性的二维码类型的行列数量。由于我们图片中的二维码Data Matrix 有相同的行列数,我们选择正方形来定义他的坐标。算子[ hom_vector_to_proj_hom_mat2d]使用修正前,修正后的二维码坐标值来计算转换矩阵。然后使用获得的矩阵,通过算子[ hom_vector_to_proj_hom_mat2d]将图片转换到指定的平面。如果你需要识别的二维码在同一个平面上,转换矩阵可以只计算一次,然后再应用到其他照片上。
在这里插入图片描述
修正后的二维码可以正确解码,如第2章第9页,图4.1显示了倾斜的图片和他修正后的图片。
在这里插入图片描述

大模组间隙

对于矩阵码,模组间隙可以在一定范围内被允许,例程[hdevelop\Identification\Data-Code\2d_data_codes_minimize_module_gaps.hdev] 展示了如何读取有大间隙的DataMatrix。首先我们调整模型参数,如第三章第21页所示。我们在读取二维码前,先调整参数到最大的允许模组间隙[‘module_gap_min’=‘big’] 。这个调整既可以通过算子[set_data_code_2d_param ],也可以通过算子[set_data_code_2d_param]。因为图像中的间隙大于最大允许间隙[50%的模组尺寸],因此读取二维码失败。调整模型参数,没有获得结果,我们必须调整图像以适应模型。此处我们使用灰度形态学,也就是用矩形结构灰度腐蚀,来扩大前景模组,同时减少间隙尺寸。图4.2 显示了二维码灰度形态学调整前后。前处理之后,二维码能够被读取解码。
在这里插入图片描述
请注意这个处理方法有效,仅仅对于矩阵码[Data Matrix ECC 200, QR Code, Micro QR Code, and Aztec Code]. 对于他们,模组的间距只需要变小,然后PDF417是不允许间隙的。因此准确的闭合间隙是非常有难度的,尤其是间隙会有一些不同的尺寸。
在这里插入图片描述
为了分辨二维码,他的前景和背景应该清晰可分辨,模组指尖应该相同,或者低纹理区域。如果你是因为太多的纹理,或者噪点无法读取二维码,可以尝试对图像进行灰度形态学的前处理,或者中值滤波,或者两者兼有。例程展示了二维码的几个部分被噪音干扰。特别是二维码的下面的静默区被条状噪音干扰。我们分别应用两种前处理手段,首先是灰度形态学分析,用算子[gray_opening_shap]进行长方形结构元素开运算。这个算子将部分的间隙闭合,同时最大的作用是减少干扰。

在这里插入图片描述
在这里插入图片描述
中值滤波平滑边缘同时减少干扰,见图4.4
上面所有的流程,因为降低了干扰,二维码和条状干扰 在静默区的不同之处变得明显,是二维码更加容易读取。所以这个案例中,前处理流程使得二维码成功读取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值