上次我們已經(jīng)總結(jié)過了圖像的基本概念。拋開各種圖像的文件格式和壓縮算法,實際在內(nèi)存中的圖片,就是一個個的數(shù)字矩陣。對圖片存儲有疑問,可以去翻看我前一節(jié)的總結(jié)。本次我們總結(jié)下圖片的基本操作--圖片融合,圖片拼接,圖片對比度,亮度處理等。
首先,我們來考慮下圖片拼接。既然圖片是一個個數(shù)據(jù)矩陣,那是不是我們把2個數(shù)字矩陣接在一起,是不是就是圖片相接呢?答案是肯定的。比如萌妹子的圖片:
同樣的,水平相接也一樣。
其次,我們討論下圖片的融合。圖片的融合是指2張或2張以上的圖片,疊加在一起,形成一張圖。是不是,我們只要把兩張圖的數(shù)字矩陣,直接在我們需要的位置,相加就行了呢?理論是這樣的。但是考慮到uint8的取值范圍只有255.所以,我們會賦予2張帶計算的圖一定的權(quán)重,這樣也可以調(diào)節(jié),每個圖片的占比。
兩張妹子圖我們讓右邊的圖,所占比重為0.2,左邊為0.8,即可得到下面的圖片。
最后,我們總結(jié)下圖片的對比度,亮度等的處理。幾乎所有的圖像特征處理都離不開圖像的卷積運算,不論是經(jīng)典cv還是深度學(xué)習的CNN。當然,我們本次的例子也是為了引出卷積的應(yīng)用和概念。
不用排斥,我們不會用大量的平移,反轉(zhuǎn),疊加這種摸不著頭腦的解釋。這個奇葩的解釋明顯就是看著公式定義的運算,說廢話。至少我想要的是個直觀的物理意義或幾何意義。
卷積的概念其實非常非常簡單,可以用四個字概括:加權(quán)平均和。是的,講完了。
我們簡單理解下這個公式??梢园裦函數(shù)當作目標函數(shù),g函數(shù)當作加權(quán)函數(shù)(或者叫系數(shù),只是這個系數(shù)也是個函數(shù)而已)。公式的意義就可以理解為,g函數(shù)對f函數(shù)在x時間內(nèi)的加權(quán)平均和。
這么說可能還有些抽象。我們把f函數(shù)當作圖像矩陣,g函數(shù)當作卷積核。這個公式的作用,就是用卷積核逐步滑動整個圖片,對每個滑動位置做加權(quán)平均和。如圖:
我們假設(shè)左邊的矩陣是圖片原始數(shù)據(jù),黃色的滑動矩陣為固定的卷積核。右邊的粉色矩陣為卷積的運算結(jié)果。很明顯可以看出,卷積過程,就是滑動卷積核在圖像所有位置的加權(quán)平均和。卷積核各個位置的數(shù)值,就是我們的加權(quán)系數(shù),也就是公式中的g函數(shù)。
在了解了卷積運算的定義之后,我們考慮如何增加一張圖片的對比度。
我們考慮處理這張妹子圖片。
實際上,我們通過這樣的一個卷積核,對圖像做卷積運算就可以增強圖像的對比度了。增強圖像的對比度,實際上就是改變圖像矩陣相鄰數(shù)據(jù)的像素差異。相鄰像素的數(shù)值差異越大,表現(xiàn)出的圖像對比度就越強。
通過這樣的一個卷積運算后,明顯可以把相鄰像素的像素差異變大。稍微推下微分公式,相信不需要做過多解釋了。明白了圖像的卷積,就能針對圖像做各種各樣的處理了。
至于圖像的亮度提高,我相信讀者已經(jīng)猜到了。對的,只要提高每個像素點的值,圖片亮度就相應(yīng)的提升了。
下次總結(jié),我們總結(jié)下傅立葉變換推導(dǎo)和在圖像的應(yīng)用,圖像的各種濾波,平滑去燥,以及圖像的形態(tài)學(xué)操作。