线性代数课程应用教学案例的设计与研究
2023-05-30范秉理孔令臣高勃
范秉理 孔令臣 高勃
摘 要:线性代数是非常重要的大学数学基础课程。本文针对线性代数中矩阵乘法的教学内容,基于日常生活中扫描二维码的问题,设计了一个教学应用案例,展示了矩阵乘法在二维码扫描中的应用,并通过具体算例,演示了如何将扫描得到的二维码通过平移变换、旋转变换等,处理成标准二维码图片。
关键词:矩阵乘法;二维码;教学案例
1 案例背景
伴随着5G时代的到来,人工智能技术已经逐渐进入各行各业,给人们的日常生活带来极大便利,其中应用最普遍、影响力最大的是智能手机。在日常生活中,人们几乎每天都要使用智能手机完成一个操作,那就是扫描二维码。
提到“扫描二维码”,首先想到的就是通过手机扫码支付,这又被称为移动支付。通过二维码,能够完成在商城、超市购物,在餐厅点餐,可以使用二维码乘坐公交、地铁,使用共享单车、共享汽车,以及通过扫描二维码查询快递配送信息等。二维码在日常生活中被广泛使用,现在已经几乎是无处不在。
在扫描二维码的时候,经常遇到屏幕长期处于扫描状态,或者扫描的二维码无法识别的情况,这主要是因为扫描中得到的非标准二维码图形无法变换为标准二维码图形所引起的。本文介绍如何用数学方法,将二维码扫描中得到的非标准图形变换为标准图形,为后续二维码内容识别做好准备。
2 二维码结构
二维码的结构主要由功能图形区和编码区两大部分组成,每个部分又包含了不同的模块,如图1所示。
空白区:二维码图片四周没有图片内容的区域被称为二维码的空白区。空白区的宽度为4个像素块。
位置探测图形:标准QR码的左上角、右上角和左下角包含3个形状、大小均相同的位置探测图形区,可以定位二维码图形中各个具体部分的位置。
定位图形:是由黑白相间的模块单元组成的,为各模块符号提供坐标信息。
校正圖形:形状与位置探测图形类似。QR码的版本信息确定了二维码中校正图形的个数多少,版本越高,校正图形的个数就会越多。
格式信息:如图1所示位于三个位置探测图形的周边。它表示二维码的纠错级别。
版本信息:如图1所示有两个位置,与定位图形和位置探测图形分隔符相连,它表示二维码的规格。QR码设有从1到40共40个版本。
数据和纠错码字:用来存储二维码实际要表达的信息内容和纠错码字,当二维码图片发生破损时,可以纠正不正确信息。
3 二维码图片的数学处理方法
在二维码识别时,首先需要采集一幅图片,然后对图片进行相关处理,再对图片进行识别,最后将识别内容进行输出。由于手机扫描二维码时光线强弱、扫描角度等原因,得到的二维码图片各式各样。
因此,需要对这些采集到的非标准二维码图片进行降噪、定位、校正等多种处理,获得了标准清晰的二维码,才能更好地对其内容进行识别。对非标准二维码图片的处理主要包括以下几个步骤。
本文着重介绍校正处理阶段,平移校正和旋转校正处理中的数学方法。
3.1 平移校正
通过边缘检测、直线检测等算法可以找到二维码的三个位置探测图形,如果三个位置探测图形中心点连线能构成等腰直角三角形就可以定位出二维码。如果此直角等腰三角形斜边的中点,也就是二维码的中心,不在我们建立的直角坐标系的原点,为方便后续处理,需要将二维码中心置于直角坐标系原点。这个操作可以通过平移校正来实现。如图4所示,实线矩形表示原始图片,虚线矩形表示平移校正后的图片。
图片平移时,不改变图片的大小,只是改变了图片的位置。图片从一个地方平移到另外一个地方,可以表示为原图片上的坐标点(x,y),移动到了新的坐标点(x′,y′),量化平移的距离后,可以得到:
x′=x+Δx
y′=y+Δy(1)
式(1)可以表示为矩阵形式:
[x′y′]=[xy]+[ΔxΔy](2)
假设平移校正前,二维码中心点的坐标为(m,n),平移后的坐标为(0,0),可以得到Δx=-m,Δy=-n,从而确定了二维码图片平移校正的具体计算公式。
3.2 旋转校正
平移校正后的二维码图片如果存在一定角度的偏转,还需要对图片进行旋转校正处理。在定位处理中通过边缘检测算法,检测出以位置探测图形为边界的四条边缘直线,由任意一条直线的斜率,即可确定图片的偏转角度,然后进行相应角度的旋转,就可以得到校正后的图片。如右图所示,实线矩形表示原始图片,虚线矩形表示旋转校正后的图片。
由旋转的性质可知OA=OA′,设其长度为l。假设点A坐标为(x,y),点A′坐标为(x′,y′),根据三角函数可知:
x=lcos
y=lsin(3)
于是:
x′=lcos(-θ)=xcosθ+ysinθ
y′=lsin(-θ)=-xsinθ+ycosθ(4)
式(4)可以表示为矩阵形式:
[x′y′]=[xy]·cosθ-sinθ
sinθcosθ(5)
3.3 校正的齐次坐标表示
齐次坐标表示法是一种把原本是n维的向量用一个n+1维向量来表示的方法。例如,一个二维平面中的点(x,y)使用齐次坐标可以表示为(xh,yh,h),其中h为任意非零值,当h为零时表示一个二维向量。
通过齐次坐标,可以把二维码图片校正中的各种处理用统一的矩阵形式来表示。平移校正式(2)可以表示为:
[x′y′1]=[xy1]·100
010
ΔxΔy1(6)
旋转校正式(4)可以表示为:
[x′y′1]=[xy1]·cosθ-sinθ0
sinθcosθ0
001(7)
于是二维码图片先做平移校正,再做旋转校正就可以表示为:
[x′y′1]=[xy1]·100
010
ΔxΔy1·cosθ-sinθ0
sinθcosθ0
001(8)
此外,二维码图片做校正处理时,除了上述两种类型外,常用的还有缩放校正、错切校正等。图2中右侧二维码图片就需要做错切校正。这些校正也可以用齐次坐标来统一表示。缩放校正表示为:
[x′y′1]=[xy1]·Sx00
0Sy0
001(9)
沿x轴方向对y轴的错切校正表示为:
[x′y′1]=[xy1]·100
c10
001(10)
沿y轴方向对x轴的错切校正表示为:
[x′y′1]=[xy1]·1b0
010
001(11)
4 具体算例
经过灰度处理、滤波处理、二值化处理、定位处理后,得到一张如图6所示的二维码图片。下面通过平移变换和旋转编号,将其处理成标准二维码图片。
经过定位处理后,可以确定四个顶点A、B、C、D的坐标。打开二值化以后的二维码图片也可以查看四个顶点的坐标,其中0表示图片中该点显示黑色,1表示图片中该点显示白色。
经过计算,确定了平移增量和旋转角度后,可以得到二维码图片中的点(x,y)先做平移校正,再做旋转校正的具体计算形式为:
[x′y′1]=[xy1]·100
010
-5193511
·cos0.7962-sin0.79620
sin0.7962cos0.79620
001
以四个顶点为例,这四个点经过校正后坐标对应如下表所示。
结语
从扫描二维码到最终获取二维码信息的过程比较复杂,本文仅介绍了将得到的非标准二维码图片处理成标准二维码图片中校正环节的一些数学处理方法,后面还需要对标准二维码进行解码、纠错等操作。这些过程中用到很多数学知识,感兴趣的读者可以自行查阅相关资料学习。
参考文献:
[1]孙家广,胡事民.计算机图形学基础教程(第2版)[M].北京:清华大学出版社,2009.
[2]Francis S Hill Jr,Stephen M Kelley.计算机图形学(OpenGL版)(第3版)[M].胡事民,刘利刚,刘永进,等,译.北京:清华大学出版社,2009.
[3]Donald Hearn(D·赫恩),等.计算机图形学(第4版)[M].北京:电子工业出版社,2014.
[4]肖翔,刘晓明,王云柯.QR码图像的矫正与定位方法研究[J].计算机科学,2007(11):217219.
[5]黄珂,薛月菊,陈瑶,等.QR码图像几何校正算法的研究[J].计算机工程与应用,2014(20):192196.
[6]阳建华,郑莹娜.一种复杂条件下的QR码图像预处理算法[J].科学技术与工程,2014(2):211214.
[7]孔猛.QR二维码设计的基本原则及要点分析[J].今日印刷,2017(1):6971.
基金:高等学校大学数学教学研究与发展中心2020年教学改革项目“大学数学在信息技术领域的应用案例设计研究”(CMC20200302)
作者简介:范秉理(1977— ),男,漢族,甘肃人,博士,副教授,研究方向:运筹统计分析。