App下載

計算機是如何存儲圖像的?從圖像的展現(xiàn)到圖片識別!

猿友 2021-07-06 15:44:06 瀏覽數(shù) (12069)
反饋

隨著python的大火,人工智能領域也在蓬勃的發(fā)展(人工智能的大火也導致了python的發(fā)展)。在人工智能的發(fā)展中,圖像識別技術是里面發(fā)展得比較好的一部分技術,很多互聯(lián)網(wǎng)大廠都在這一方面投入了很多精力并獲得了不菲的成果。今天我們就通過介紹計算機圖像存儲的方式,來介紹一下圖像識別的原理吧!

物理基礎

在初中物理中我們接觸到三基色(紅綠藍)。三種基色的光可以合成所有顏色的光(而如果三種基色的光都沒有,就沒有光,就呈現(xiàn)出黑色),這就是我們可以看到彩色圖片(顯示器上的,發(fā)光的)的基礎。

 另外,物理學上還有三原色,是紅黃藍,三基色和三原色的區(qū)別是他們的原理,一種利用加色法(三基色)進行顏色合成,另一種利用減色法(三原色)進行顏色合成,通過減色法無法合成白色。三原色是我們可以看到的彩色圖片(紙質(zhì)照片,不發(fā)光,依靠反射光的)的基礎

物理學上喜歡將一件物體無限的往最小方向分解,直到分解不了為止,因此我們看到了原子。在圖像處理上,我們也將圖片進行了分解,分解到最后,只剩下一個點,這個點就叫像素點。而一張圖片,由很多很多的像素點組成,以目前常見的攝像頭像素(1200萬像素)為例,一張照片就有1200萬個像素點。

像素點

如上圖所示,每三個發(fā)光單元構(gòu)成一個像素點。

計算機基礎

有了物理基礎,那么計算機只要通過數(shù)據(jù)控制每個像素點就可以了。我們上文提到過,每個像素點都有三種顏色構(gòu)成,每張圖片由很多很多的像素點組成,我們將像素點進行排列,就可以得到一個像素點矩陣(可以理解為一個二維數(shù)組或者一個方陣)。而每個像素點需要記錄這個顏色的信息,那就又回到了物理學的范疇了。三基色調(diào)整顏色是通過三種顏色的光的發(fā)光強度不同來實現(xiàn)光的混合的。那么我們在每個像素點中記錄每一個像素對應的rgb光的強度值,就能實現(xiàn)混合得到的光的顏色。

通過上述原理,數(shù)碼圖像最重要的格式——rgb模式就介紹得差不多了。rgb模式的原理就是通過一個二維數(shù)組來記錄每個像素點的位置,每個像素點都有rgb三個屬性值用來記錄對應的數(shù)值(實際上應該是一個三維數(shù)組)。

 在rgb模式中,每個屬性值用一八位的二進制數(shù)值(也就是一字節(jié),而一字節(jié)可以表示256種狀態(tài)),一個像素點有三個這樣的屬性值,也就是說他可以合成256*256*256(1677多萬)種顏色,也就是我們所說的真彩色。

 rgb的出現(xiàn)是基于彩色顯示屏的,在沒有彩色顯示屏的時代,其實使用的圖片記錄方式也很相似。比如以下要介紹的幾種模式:

  • 位圖模式:我們在rgb模式中介紹到,rgb每個像素點用三個八位的二進制數(shù)值進行表現(xiàn),而位圖只用一個一位的二進制數(shù)值表現(xiàn),所以位圖只有兩種顏色,也就是白色和黑色。
  • 灰度模式:與rgb模式類似,但它采用的是一個八位的二進制數(shù)值進行表現(xiàn),這個數(shù)值只控制白色的強度(也就是灰度)。
  • CMYK模式:CMYK模式是用來打印或印刷的模式,它是相減的模式。當C、M、Y三值達到最大值時,在理論上應為黑色,但實際上因顏料的關系,呈顯的不是黑色,而是深褐色。為彌補這個問題,所以加進了黑色K。由于加了黑色,CMYK共有四個通道,正因為如此,對于同一個圖像文件來說,CMYK模式比RGB模式的信息量要大四分之一。但RGB模式的色域范圍比CMYK模式大。因為印刷顏料在印刷過程中不能重現(xiàn)RGB色彩。

什么是通道

在上面我們提到了,每一個像素點都有rgb三個值。圖像通道就是將單獨的一個顏色拿出來的部分數(shù)據(jù)。如下圖所示,一張圖片可以拆分成3個通道。

ps下的通道

當我們只選擇綠色通道時,圖片是這個樣子的:

綠色通道

可以看到,在前一張圖中的綠色,在只展示綠色通道的時候變成了白色(通過黑白的方式來展示這個值的強弱)。

關于圖像識別與圖像處理

講了這么多,那這又關圖像識別和圖像處理有什么關系呢?

首先你得知道圖像是什么,才能進行處理。既然圖像是一個一個的像素點,那么我們就一個一個點的去理解他。我們在最開始一直提到過一個東西,就是圖片是存儲在一個二維數(shù)組(三維數(shù)組)里的。這種存儲方式我們又喜歡管他叫——矩陣。圖像識別的基礎原理,就是通過矩陣的運算來判斷圖像是否有相似之處的。比如我有兩個矩陣,他們的內(nèi)容是一樣的,那么計算機通過計算就可以得到相同的結(jié)果(其實更深化的講,矩陣可以讓計算機判斷矩陣之中的相似區(qū)塊,這部分可讀者可以自行去了解卷積神經(jīng)網(wǎng)絡和特征值)。也就是說,圖像識別的原理,是建立在圖像矩陣上的。

 關于圖像識別技術還想學習更多?到編程獅學習機器學習課程吧!

圖像處理就更簡單了,我們既然知道了圖像是怎么存儲的,我們只需要對圖像數(shù)據(jù)進行修改,就能對圖像進行處理。

與python的關系

說了這么多,但卻還沒提到python,是因為上述的內(nèi)容都是計算機原理,并不是python獨家專有的。那么為什么小編在這里要提到python呢?其實是由于python的特殊性,python是現(xiàn)有語言里面生態(tài)比較好的,不管是機器學習還是圖像處理庫,python都有一套合理簡單的解決方案,而且由于使用比較簡單,而且也不需要追求太高的效率,很多機器學習的算法工程師都偏愛使用python進行開發(fā)。這也就是為什么現(xiàn)在python可以乘上人工智能的浪尖的原因了。

 既然python那么火,還不趕快來學習python?編程獅python視頻教程列表在此,點擊即可前往學習!

小結(jié)

以上就是關于圖像識別原理以及計算機圖像存儲的全部內(nèi)容。關注W3C技術頭條,查看往期精彩內(nèi)容!


1 人點贊