zoukankan      html  css  js  c++  java
  • 彩色图片实际是什么样子的

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

  • 相关阅读:
    维护需求与新增需求
    LoadRunner如何在注册业务脚本中设置参数化唯一性
    常用的功能测试方法
    应用代码性能诊断分析之内存泄漏
    (52)ElasticSearch之字符串排序问题
    (51)ElasticSearch之query string查询及copy_to的使用
    (50)ElasticSearch之分页查询中的deep paging问题
    (49)ElasticSearch之多index,多type查询
    (48)ElasticSearch之查询结果分析
    (47)ElasticSearch之bulk语法格式解析
  • 原文地址:https://www.cnblogs.com/Jerry-home/p/10107549.html
Copyright © 2011-2022 走看看