余曉江


摘 要:近年來圖像合成被大量使用在信息壓縮、動畫演算、圖像修復(fù)和編輯等場景,已經(jīng)成為計算機圖形學(xué)一個重要的研究課題。在探討了二維圖像合成技術(shù)的基本理論的基礎(chǔ)上,本文闡述了利用PHP QrCode來進行圖像合成的方法,并探析了PHP QrCode的網(wǎng)絡(luò)接入方法及良好的圖像合成成效。
關(guān)鍵詞:圖像合成;PHP;API;QrCode
紋理在基于圖像的真實感繪制中起到了非常重要的作用,這是因為它可以用來描述很多表面特征。通過紋理合成可以獲取一些新紋理。因此,利用紋理合成技術(shù)合成新紋理,將其用于真實感繪制中,已經(jīng)成為當(dāng)前計算機圖形學(xué)中的一個重要的研究課題。
1.理論基礎(chǔ)
1.1 PHP語言特點
PHP作為腳本語言,在語法上極其相似于C、Perl語言,我們通常用PHP來開發(fā)動態(tài)的網(wǎng)站系統(tǒng)。相比較而言,PHP在動態(tài)網(wǎng)頁開發(fā)中占據(jù)以下幾方面優(yōu)勢,因而我們將PHP選為開發(fā)語言。
(1)開放性強,在部分開源平臺上,開發(fā)者會在平臺上開放PHP代碼,以供學(xué)習(xí)者學(xué)習(xí)并運用.
(2)PHP具有強大的可移植性,它的運行條件可以滿足不同的平臺,這對開發(fā)人員來說,能夠自由安全的基礎(chǔ)上選擇運行平臺。
(3)PHP語言非常便捷,使用容易,開發(fā)便利,且具有良好的交互性,可以把代碼鑲嵌入HTML來開發(fā)動態(tài)網(wǎng)站。
(4)PHP可以面向?qū)ο螅覀兌贾繮HP只是腳本語言,但是面向?qū)ο蟮乃枷胪瑯涌梢赃\用于PHP。
除此之外,PHP平臺具有多樣化,且擁有多種不同風(fēng)格軟件供開發(fā)者使用。PHP還對鏈接數(shù)據(jù)庫提供了許多便捷路徑,這也是PHP在互聯(lián)網(wǎng)開發(fā)中得到廣泛應(yīng)用的直接原因,同時PHP有API可以直接調(diào)用protocol、IMAP、POP3等通訊協(xié)議
1.2 圖像合成技術(shù)
為了更好理解二維圖像紋理合成技術(shù),下面介紹與之相關(guān)的基本概念,并在此基礎(chǔ)上分類總結(jié)合成算法。
(1)MRF模型
圖像本身具有一定的局部紋理特點,這些特征片區(qū)之內(nèi)所有的像素只和空間鄰域內(nèi)的像素集合有關(guān)聯(lián),這種現(xiàn)象完全遵照馬爾可夫隨機場理論。故而圖像合成過程,尤其是二維圖像合成一般使用MRF模型,基于MRF的紋理合成思想:對于當(dāng)前待合成的像素或塊,統(tǒng)計其空間鄰域或特征區(qū)塊的交叉區(qū)塊與紋理樣圖中所有像素或塊的SSD,繼而基于相似度匹配方法來挑出相似度最高的鄰域的特征區(qū)塊,最后將這些區(qū)塊的像素復(fù)制到輸出圖像中進行合成。
(2)像素的鄰域及其鄰域匹配
像素的鄰域可定義如下:紋理合成中,以該像素為中心的矩形區(qū)域與已合成像素的相交區(qū)域。像素的鄰域匹配實際上是選擇鄰域誤差較小的鄰域過程。具體地,基于點的紋理合成中,計算出輸出圖像中當(dāng)前像素與紋理樣圖中每一個像素的鄰域誤差后,選擇誤差較小的鄰域作為最佳匹配,這個過程稱為鄰域匹配。
領(lǐng)域誤差是指像素q1,q2空間鄰域中對應(yīng)位置處的SSD。L2距離定義如下
其中,N1為像素q1的鄰域,N2為像素q2的鄰域,從與從的形狀相同,p是N1與N2中對應(yīng)位置處的像素。
(3)基于塊的紋理合成
基于塊的紋理合成,以像素塊為基本單位,每次在輸出圖像中合成一個塊,直至輸出圖像被填滿為止。每次進行塊合成時,根據(jù)MRF鄰域匹配的準則,首先在輸出圖像中提取對應(yīng)塊的鄰域;然后在輸入紋理樣圖中,根據(jù)鄰域塊的邊界匹配準則,查找最相似的圖像塊,并將該圖像塊拷貝到輸出圖像中。
2.PHP在圖像合成中的應(yīng)用
2.1 PHP QRCode
PHP QRCode是一個基于GNU通用公共許可協(xié)議的開源庫,用于生成二維碼、二維條形碼。基于Lib-Qrencode C依賴庫,提供了創(chuàng)建二維碼圖像(PNG, JPEG多虧了GD2)的API。完全在PHP中實現(xiàn),沒有外部依賴函數(shù)(除特殊需求外)。該函數(shù)庫有以下特點:
可以將數(shù)字,字母加數(shù)字及8位的漢字編碼的字符轉(zhuǎn)化為二維碼;
完全在PHP中實現(xiàn),除了GD2之外沒有外部依賴;
合成圖像可以導(dǎo)出為PNG, JPEG格式,也可以導(dǎo)出為位表;
配置簡單;
可以用于加速計算的數(shù)據(jù)緩存;
具備調(diào)試數(shù)據(jù)轉(zhuǎn)儲、錯誤日志記錄、時間基準測試功能;
2.2 PHP API接入
作為用戶與PHP軟件之間的接口,用戶通過接入API,可以快速、有效和安全地操縱平臺中的各類軟件,以處理自身程序中的各種問題及需求。該接口是為程序員在編程時使用的,系統(tǒng)和應(yīng)用程序通過這個接口,可在執(zhí)行中訪問系統(tǒng)中的資源和取得OS的服務(wù),它也是程序取得操作系統(tǒng)服務(wù)的唯一途徑。大多數(shù)軟件程序接口是由一組系統(tǒng)調(diào)用(system call)組成,每一個系統(tǒng)調(diào)用都是一個能完成特定功能的子程序。
PHP QrCode作為PHP平臺的API之一,其接入規(guī)則與其他API基本無異,其流程如下圖所示。
phpqrcode.php提供了一個關(guān)鍵的png方法,其中參數(shù)$text表示生成二位的信息文本;參數(shù)$outfile表示是否輸出二維碼圖片文件,默認否;參數(shù)$level表示容錯率,也就是有被覆蓋的區(qū)域還能識別,分別是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%); 參數(shù)$size表示生成圖片大小,默認是3;參數(shù)$margin表示二維碼周圍邊框空白區(qū)域間距值;參數(shù)$saveandprint表示是否保存二維碼并顯示。
在調(diào)用API完成之后,只需要按照上述函數(shù)語法進行對phpqrcode進行配置即可獲得想要的合成圖像效果。
3.PHP QrCode使用成效
在探討了二維圖像合成技術(shù)的基本理論的基礎(chǔ)上,本文闡述了利用PHP QrCode來進行圖像合成的方法,其合成圖像如上圖所示。上圖即將文字信息成功的轉(zhuǎn)碼并合成一副二維圖像,通過掃描該圖像可以看到文本的摘要信息。
參考文獻
[1]顧佳玲,彭宏京. 基于隨機查找的并行大規(guī)模紋理合成[J].系統(tǒng)仿真學(xué)報,2015, 21(8):2441-2445.