1. 程式人生 > >彩色圖片實際是什麼樣子的

彩色圖片實際是什麼樣子的

一張彩色圖片實際上是由很多畫素點組成,每個畫素點又由RGB(分別為RED,GREEN,BLUE,俗稱三原色)顏色構成,而RGB是通過數字的大小來確認。在0-255之間,有8位二進位制碼錶示,通過改變大小,三種顏色可以構建出16777216(256 * 256 * 256)種顏色,俗稱1600萬色。可以看以下例子:

import matplotlib.image as mpimg
import matplotlib.pyplot as plt
image=mpimg.imread('c:/Users/0.jpg')
print(image.shape)
print(image)
plt.imshow(image)
plt.show()

下面是輸出的內容:

(300, 300, 3)
[[[153 143 116]
[153 143 116]
[153 143 116]
...
[ 42 37 33]
[ 43 38 34]
[ 44 39 35]]

[[144 134 107]
[144 134 107]
[144 134 107]
...
[ 40 35 31]
[ 41 36 32]
[ 42 37 33]]

[[143 133 106]
[143 133 106]
[143 133 106]
...
[ 37 32 28]
[ 38 33 29]
[ 39 34 30]]

...

[[ 23 20 5]
[ 22 19 4]
[ 20 18 3]
...
[172 169 154]
[168 165 150]
[171 168 153]]

[[ 21 19 4]
[ 20 18 3]
[ 19 17 2]
...
[172 169 154]
[168 165 150]
[171 168 153]]

[[ 22 21 3]
[ 21 19 4]
[ 17 18 2]
...
[172 169 154]
[168 165 150]
[171 168 153]]]

 

 從上面的輸出結果可以看出,首先,該圖片是300*300的圖片,共計90000個畫素點。第二個輸出可以看出,影象其實就是一堆的數字,三個為一組,一組表示一個畫素點,每組的數字對應著RGB中的值,表示著不同的顏色。在最後的圖片輸出中,我們可以更加直觀的看到。當移動滑鼠時,在右下方會顯示座標值和該畫素點的RGB值。

綜上,一張彩色圖片在儲存中,是由一堆0-255的數字構成。即為m*n*3,m表示長度(橫座標x),n表示高度(縱座標y),m*n構成圖片的畫素值,3表示RGB三原色。

 

所以以後更改圖片不就是可以直接從畫素點更改嗎?改變RGB值不就可以完全造假嗎?而且還看不出造假的痕跡,哈哈哈哈