尹宗天,謝超逸,劉蘇宜,劉新如
(河海大學(xué)常州校區(qū) 機電工程學(xué)院,江蘇 常州 213000)
像素全稱叫做圖像元素,指基本原色素及它的灰度基本編碼[1]。圖像分辨率通常以像素每英寸PPI表示。數(shù)字圖像具有連續(xù)的灰度色調(diào),即當(dāng)圖像被放大數(shù)倍時,連續(xù)的色調(diào)由大量的具有類似色小點構(gòu)成。這些小點就是圖像最小元素——像素[2]。此最小圖形單位一般在屏上顯示為一個單一著色點。像素越高,其顏色板就會越豐富,就越可以表達(dá)色感。在單色成像的條件下,像素點的每種顏色都是黑白以及一系列黑白過渡色?;译A用黑色的色調(diào)來標(biāo)記對象,即用黑色作為基色以及不同飽和的黑色表示圖像。每一個灰度對象具有0%-100%的亮度值(即白色到黑色)。通常,使用字節(jié)(8b)對像素值進(jìn)行量化。如果灰度值連續(xù)變化被量化為256灰度級,灰度值的范圍為0~255[3],表明亮度從深到淺,圖像中的顏色由黑色變?yōu)榘咨?。灰度圖像與黑白圖像不同。計算機的圖像領(lǐng)域中,黑白圖像只存在黑與白兩色。灰度圖像中的每一個像素值都是介于黑、白之間的256個顏色的深度不同灰度中。
本文主要研究了視野在靠近物體的直線方向上運動。利用放大轉(zhuǎn)制法[4]。由凸透鏡成像原理可知相機鏡頭離物體越近,其物像所包括的實物信息也就越多。把靠近放大后的物像信息通過導(dǎo)入更大的矩陣,再將矩陣轉(zhuǎn)制為比第一幀物像更清晰的圖像。放大比例越高,物像轉(zhuǎn)制后越清晰。經(jīng)過模型的建立,我們得出了最終模擬結(jié)果,分辨率達(dá)到了576×1152,細(xì)節(jié)相似度達(dá)到了85%以上。
由凸透鏡成像原理(圖 1)可知,在物體到凸透鏡鏡心距離大于凸透鏡焦距條件下,物體到凸透鏡鏡心距離越小,其所成實像就越大。我們用三維軟件畫出了相機凸透鏡成像的模擬圖(圖2、圖3):
圖1 凸透鏡成像示意圖[5]Fig.1 Schematic diagram of convex lens imaging[5]
圖2 遠(yuǎn)處成像Fig.2 Remote imaging
圖3 近處成像Fig.3 Near imaging
相機鏡頭就是一個凸透鏡。因為相機拍出照片像素是一定的,根據(jù)以上原理可知,相機的鏡頭與物體距離越校,所形成的物像越大,其物像所包括的實物信息也就越多。我們由此設(shè)計了一套放大轉(zhuǎn)制法。在黑色背景下拍完第一幀照片后,使相機不斷徑直靠近物體持續(xù)拍攝,我們可以通過以下步驟提高物像清晰度(放大比n盡可能取大于1的正整數(shù)):
由于現(xiàn)實情況下拍攝誤差較大,我們在Photoshop軟件中對物體成像進(jìn)行模擬,以3200×6400像素的高清圖像(圖5)作為實物體。
圖4 流程圖Fig.4 Flow chart
圖5 實物的高清圖像Fig.5 HD image of a physical object
圖6 第一幀物像Fig.6 Image of the first frame
我們假定視野中只有一個物體且物體在放大時始終完整的呈現(xiàn)在視野中,當(dāng)物體為如圖6的一個白色圓時,第一次取n=2,所以通過MATLAB程序建立一個64×128的全零矩陣(即像素64×128的全黑圖像,該全值矩陣的值由背景灰度值決定)。再在之后連續(xù)拍攝的多幀圖像中找出物像與第一幀中物像相似比 2:1的一張圖,這張圖中物像所能反映實物體 的信息量比第一幀圖更多。然后將其轉(zhuǎn)化為32×64的矩陣后導(dǎo)入 64×128的全零矩陣。最后將64×128矩陣化為圖像(即像素為64×128),并將其大小縮放到和32×64像素的圖像一樣大,這樣我們可明顯觀察到更為清晰的物像。圖7為Matlab的圖像像素提高的轉(zhuǎn)制過程。
同理,當(dāng)放大比 n=4時,我們要在 MATLAB中建全零矩陣大小為 128×256,并相應(yīng)地 在拍攝的多幀圖像中找出與第一幀物像相似比4:1的物像,導(dǎo)入全零矩陣轉(zhuǎn)制,最終效果如圖8所示。
將兩次放大轉(zhuǎn)制后的圖像與第一幀圖像進(jìn)行局部放大對比,如圖9所示。
可見隨著放大比n不斷增大,圖像像素也不斷提高,物像所能反映的實體的真實信息就會越來越多,也就是說物像能不斷向?qū)嵨锝咏?/p>
在模型的第一次模擬中,為了使像素灰度值之間的過渡變得“圓滑”,我們采用了局部二值化處理即手動的灰度值調(diào)整[5]。用MATLAB的程序,對實物的圖像加以局部二值化處理,如圖10所示。
缺點:每次增加模擬次數(shù)時需要手動微調(diào)二值化的最小灰度值和最大灰度值,以達(dá)到顯示圖像細(xì)節(jié)的目的。
改進(jìn):采用OpenCV基于局部自適應(yīng)閾值的圖像二值化[6]。
較為經(jīng)常使用的圖像二值化的辦法有 3種:(1)全局固定閾值;(2)局部自適應(yīng)閾值;(3)Otsu。
全局固定閾值是指具有統(tǒng)一閾值的整體圖像的兩值,且局部自適應(yīng)閾值根據(jù)像素鄰域塊之像素值的分布,從而確定在像素的位置上的2個閾值。這種做法的好處是,在每個像素位置的2個閾值不是固定的,而是通過它的相鄰像素分布來決定。具有不同的對比度、亮度和紋理局部圖像區(qū),將具有相應(yīng)的局部二閾值閾值[7]。
圖9 放大轉(zhuǎn)制后的物像的局部放大對比(左、中、右分別為第一幀圖、 放大轉(zhuǎn)制2倍圖及4倍圖)Fig.9 Partial enlargement and comparison of objects after enlargement(left, middle, and right are the first frame, 2 times and 4 times)
圖10 進(jìn)行局部二值化處理的實物圖像(左為處理前,右為處理后)Fig.10 Physical image after local binarization process (left before processing, and right after processing)
最為常用的局部自適應(yīng)閾值是:(1)局部鄰域塊平均值;(2)局部鄰域塊高斯加權(quán)和[8-11]。
下面這段OpenCV代碼比較了局部自適應(yīng)閾值及二值全局固定閾值的結(jié)果,實現(xiàn)了上述二值化方法。對比結(jié)果見圖11。
1. // 基于局部自適應(yīng)閾值的圖像二值化
2. // Author:www.icvpr.com
3. // Blog: http://blog.csdn.net/icvpr
4.
5. #include
6. #include
7. int main(int argc, char** argv)
8. {
9. cv::Mat image = cv::imread("../test.bmp",CV_LOAD_IMAGE_GRAYSCALE);
10. if (image.empty())
11. {
12. std::cout<<"read image failure"< 13. return -1; 14. } 15. 16. // 全局二值化 17. int th = 100; 18. cv::Mat global; 19. cv::threshold(image, global, th, 255,CV_THRESH_BINARY_INV); 20. // 局部二值化 21. 22. int blockSize = 25; 23. int constValue = 10; 24. cv::Mat local; 25. cv::adaptiveThreshold(image, local, 255,CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY_INV, blockSize, constValue); 26. 27. cv::imwrite("global.jpg", global); 28. cv::imwrite("local.jpg", local); 29. 30. cv::imshow("globalThreshold",global); 31. cv::imshow("localThreshold", local); 32. cv::waitKey(0); 33. 34. return 0; 35. } 圖11 全局固定閾值與局部自適應(yīng)閾值的二值化結(jié)果對比(左、中、右分別為原圖,全局固定閾值T=100,局部自適應(yīng)閾值塊大小=25)Fig.11 Comparison of binaryzation results between global fixed threshold and local adaptive threshold(left, middle and right are original image, global fixed threshold T=100, local adaptive threshold block size =25) 通過對比可以看出,局部自適應(yīng)閾值二值化對灰度值差異較大的圖片整合的能力及其實用性。 [1] 康寅, 楊文川. 圖像表示及在檢索系統(tǒng)中的應(yīng)用[J]. 軟件,2011, 32(1): 38-41. [2] 北京大學(xué). 遙感資料集[M]. 北京大學(xué)遙感所, 1985. [3] 張君, 周衛(wèi)平, 舒華忠. 基于多分辨率的水表用戶碼定位與識別[J]. 軟件, 2013, 34(3): 131-133+153. [4] 胡宗進(jìn), 范文強, 于光玉, 等. 基于OpenCV的自適應(yīng)閾值圖像前景提取[J]. 光電技術(shù)應(yīng)用, 2017, 32(1): 56-59. [5] 王明毅, 郭明昊, 俎敏敏, 等. 一種基于BP神經(jīng)網(wǎng)絡(luò)的低分辨率圖像復(fù)原方法(英文)[J]. 農(nóng)業(yè)科學(xué)與技術(shù): 英文版,2017, 18(4): 687-690. [6] Author:www.icvpr.com, OpenCV基于局部自適應(yīng)閾值的圖像二值化, http://blog.csdn.net/icvpr/article/details/8515596. [7] 吳煒, 楊曉敏, 卿粼波, 等. 基于馬爾可夫隨機場的低分辨率車牌圖像復(fù)原算法[J]. 計算機應(yīng)用研究, 2010, 27(3):1170-1172. [8] 計岑. 低分辨率散焦模糊圖像的超分辨率重建復(fù)原方法[C].國際廣播電視技術(shù)討論會. 2013. [9] 付亞偉, 魏鏡弢, 趙明. 多幀超分辨率圖像重建迭代小波算法研究[J]. 價值工程, 2018, 37(1): 214-215. [10] 葛蕓, 江順亮, 葉發(fā)茂, 等. 基于ImageNet預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的遙感圖像檢索[J]. 武漢大學(xué)學(xué)報(信息科學(xué)版),2018, 43(1): 67-73. [11] 龍法寧, 朱曉姝, 胡春嬌. 基于深層卷積網(wǎng)絡(luò)的單幅圖像超分辨率重建模型[J]. 廣西科學(xué), 2017, 24(3): 231-235.4 結(jié)論