范秉理 孔令臣 高勃
摘 要:線性代數(shù)是非常重要的大學(xué)數(shù)學(xué)基礎(chǔ)課程。本文針對線性代數(shù)中矩陣乘法的教學(xué)內(nèi)容,基于日常生活中掃描二維碼的問題,設(shè)計了一個教學(xué)應(yīng)用案例,展示了矩陣乘法在二維碼掃描中的應(yīng)用,并通過具體算例,演示了如何將掃描得到的二維碼通過平移變換、旋轉(zhuǎn)變換等,處理成標準二維碼圖片。
關(guān)鍵詞:矩陣乘法;二維碼;教學(xué)案例
1 案例背景
伴隨著5G時代的到來,人工智能技術(shù)已經(jīng)逐漸進入各行各業(yè),給人們的日常生活帶來極大便利,其中應(yīng)用最普遍、影響力最大的是智能手機。在日常生活中,人們幾乎每天都要使用智能手機完成一個操作,那就是掃描二維碼。
提到“掃描二維碼”,首先想到的就是通過手機掃碼支付,這又被稱為移動支付。通過二維碼,能夠完成在商城、超市購物,在餐廳點餐,可以使用二維碼乘坐公交、地鐵,使用共享單車、共享汽車,以及通過掃描二維碼查詢快遞配送信息等。二維碼在日常生活中被廣泛使用,現(xiàn)在已經(jīng)幾乎是無處不在。
在掃描二維碼的時候,經(jīng)常遇到屏幕長期處于掃描狀態(tài),或者掃描的二維碼無法識別的情況,這主要是因為掃描中得到的非標準二維碼圖形無法變換為標準二維碼圖形所引起的。本文介紹如何用數(shù)學(xué)方法,將二維碼掃描中得到的非標準圖形變換為標準圖形,為后續(xù)二維碼內(nèi)容識別做好準備。
2 二維碼結(jié)構(gòu)
二維碼的結(jié)構(gòu)主要由功能圖形區(qū)和編碼區(qū)兩大部分組成,每個部分又包含了不同的模塊,如圖1所示。
空白區(qū):二維碼圖片四周沒有圖片內(nèi)容的區(qū)域被稱為二維碼的空白區(qū)??瞻讌^(qū)的寬度為4個像素塊。
位置探測圖形:標準QR碼的左上角、右上角和左下角包含3個形狀、大小均相同的位置探測圖形區(qū),可以定位二維碼圖形中各個具體部分的位置。
定位圖形:是由黑白相間的模塊單元組成的,為各模塊符號提供坐標信息。
校正圖形:形狀與位置探測圖形類似。QR碼的版本信息確定了二維碼中校正圖形的個數(shù)多少,版本越高,校正圖形的個數(shù)就會越多。
格式信息:如圖1所示位于三個位置探測圖形的周邊。它表示二維碼的糾錯級別。
版本信息:如圖1所示有兩個位置,與定位圖形和位置探測圖形分隔符相連,它表示二維碼的規(guī)格。QR碼設(shè)有從1到40共40個版本。
數(shù)據(jù)和糾錯碼字:用來存儲二維碼實際要表達的信息內(nèi)容和糾錯碼字,當(dāng)二維碼圖片發(fā)生破損時,可以糾正不正確信息。
3 二維碼圖片的數(shù)學(xué)處理方法
在二維碼識別時,首先需要采集一幅圖片,然后對圖片進行相關(guān)處理,再對圖片進行識別,最后將識別內(nèi)容進行輸出。由于手機掃描二維碼時光線強弱、掃描角度等原因,得到的二維碼圖片各式各樣。
因此,需要對這些采集到的非標準二維碼圖片進行降噪、定位、校正等多種處理,獲得了標準清晰的二維碼,才能更好地對其內(nèi)容進行識別。對非標準二維碼圖片的處理主要包括以下幾個步驟。
本文著重介紹校正處理階段,平移校正和旋轉(zhuǎn)校正處理中的數(shù)學(xué)方法。
3.1 平移校正
通過邊緣檢測、直線檢測等算法可以找到二維碼的三個位置探測圖形,如果三個位置探測圖形中心點連線能構(gòu)成等腰直角三角形就可以定位出二維碼。如果此直角等腰三角形斜邊的中點,也就是二維碼的中心,不在我們建立的直角坐標系的原點,為方便后續(xù)處理,需要將二維碼中心置于直角坐標系原點。這個操作可以通過平移校正來實現(xiàn)。如圖4所示,實線矩形表示原始圖片,虛線矩形表示平移校正后的圖片。
圖片平移時,不改變圖片的大小,只是改變了圖片的位置。圖片從一個地方平移到另外一個地方,可以表示為原圖片上的坐標點(x,y),移動到了新的坐標點(x′,y′),量化平移的距離后,可以得到:
x′=x+Δx
y′=y+Δy(1)
式(1)可以表示為矩陣形式:
[x′y′]=[xy]+[ΔxΔy](2)
假設(shè)平移校正前,二維碼中心點的坐標為(m,n),平移后的坐標為(0,0),可以得到Δx=-m,Δy=-n,從而確定了二維碼圖片平移校正的具體計算公式。
3.2 旋轉(zhuǎn)校正
平移校正后的二維碼圖片如果存在一定角度的偏轉(zhuǎn),還需要對圖片進行旋轉(zhuǎn)校正處理。在定位處理中通過邊緣檢測算法,檢測出以位置探測圖形為邊界的四條邊緣直線,由任意一條直線的斜率,即可確定圖片的偏轉(zhuǎn)角度,然后進行相應(yīng)角度的旋轉(zhuǎn),就可以得到校正后的圖片。如右圖所示,實線矩形表示原始圖片,虛線矩形表示旋轉(zhuǎn)校正后的圖片。
由旋轉(zhuǎn)的性質(zhì)可知OA=OA′,設(shè)其長度為l。假設(shè)點A坐標為(x,y),點A′坐標為(x′,y′),根據(jù)三角函數(shù)可知:
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為任意非零值,當(dāng)h為零時表示一個二維向量。
通過齊次坐標,可以把二維碼圖片校正中的各種處理用統(tǒng)一的矩陣形式來表示。平移校正式(2)可以表示為:
[x′y′1]=[xy1]·100
010
ΔxΔy1(6)
旋轉(zhuǎn)校正式(4)可以表示為:
[x′y′1]=[xy1]·cosθ-sinθ0
sinθcosθ0
001(7)
于是二維碼圖片先做平移校正,再做旋轉(zhuǎn)校正就可以表示為:
[x′y′1]=[xy1]·100
010
ΔxΔy1·cosθ-sinθ0
sinθcosθ0
001(8)
此外,二維碼圖片做校正處理時,除了上述兩種類型外,常用的還有縮放校正、錯切校正等。圖2中右側(cè)二維碼圖片就需要做錯切校正。這些校正也可以用齊次坐標來統(tǒng)一表示??s放校正表示為:
[x′y′1]=[xy1]·Sx00
0Sy0
001(9)
沿x軸方向?qū)軸的錯切校正表示為:
[x′y′1]=[xy1]·100
c10
001(10)
沿y軸方向?qū)軸的錯切校正表示為:
[x′y′1]=[xy1]·1b0
010
001(11)
4 具體算例
經(jīng)過灰度處理、濾波處理、二值化處理、定位處理后,得到一張如圖6所示的二維碼圖片。下面通過平移變換和旋轉(zhuǎn)編號,將其處理成標準二維碼圖片。
經(jīng)過定位處理后,可以確定四個頂點A、B、C、D的坐標。打開二值化以后的二維碼圖片也可以查看四個頂點的坐標,其中0表示圖片中該點顯示黑色,1表示圖片中該點顯示白色。
經(jīng)過計算,確定了平移增量和旋轉(zhuǎn)角度后,可以得到二維碼圖片中的點(x,y)先做平移校正,再做旋轉(zhuǎn)校正的具體計算形式為:
[x′y′1]=[xy1]·100
010
-5193511
·cos0.7962-sin0.79620
sin0.7962cos0.79620
001
以四個頂點為例,這四個點經(jīng)過校正后坐標對應(yīng)如下表所示。
結(jié)語
從掃描二維碼到最終獲取二維碼信息的過程比較復(fù)雜,本文僅介紹了將得到的非標準二維碼圖片處理成標準二維碼圖片中校正環(huán)節(jié)的一些數(shù)學(xué)處理方法,后面還需要對標準二維碼進行解碼、糾錯等操作。這些過程中用到很多數(shù)學(xué)知識,感興趣的讀者可以自行查閱相關(guān)資料學(xué)習(xí)。
參考文獻:
[1]孫家廣,胡事民.計算機圖形學(xué)基礎(chǔ)教程(第2版)[M].北京:清華大學(xué)出版社,2009.
[2]Francis S Hill Jr,Stephen M Kelley.計算機圖形學(xué)(OpenGL版)(第3版)[M].胡事民,劉利剛,劉永進,等,譯.北京:清華大學(xué)出版社,2009.
[3]Donald Hearn(D·赫恩),等.計算機圖形學(xué)(第4版)[M].北京:電子工業(yè)出版社,2014.
[4]肖翔,劉曉明,王云柯.QR碼圖像的矯正與定位方法研究[J].計算機科學(xué),2007(11):217219.
[5]黃珂,薛月菊,陳瑤,等.QR碼圖像幾何校正算法的研究[J].計算機工程與應(yīng)用,2014(20):192196.
[6]陽建華,鄭瑩娜.一種復(fù)雜條件下的QR碼圖像預(yù)處理算法[J].科學(xué)技術(shù)與工程,2014(2):211214.
[7]孔猛.QR二維碼設(shè)計的基本原則及要點分析[J].今日印刷,2017(1):6971.
基金:高等學(xué)校大學(xué)數(shù)學(xué)教學(xué)研究與發(fā)展中心2020年教學(xué)改革項目“大學(xué)數(shù)學(xué)在信息技術(shù)領(lǐng)域的應(yīng)用案例設(shè)計研究”(CMC20200302)
作者簡介:范秉理(1977— ),男,漢族,甘肅人,博士,副教授,研究方向:運籌統(tǒng)計分析。