彩色图片实际是什么样子的

一张彩色图片实际上是由很多像素点组成,每个像素点又由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值不就可以完全造假吗?而且还看不出造假的痕迹,哈哈哈哈

猜你喜欢

转载自www.cnblogs.com/Jerry-home/p/10107549.html