图片RGB三维矩阵的表示

一个图片有三个通道RGB,每个通道就是一层数据 以一个图片为例子,从图片数据,再由数据到图片转化过程,理解数据与图形以及表示的关系

兔子

from PIL import Image
#打开图片
im = Image.open('tuzi.jpg')
#导入像素
pix = im.load()
#获取宽度
width = im.size[0]
print '图片宽%s'%width
#获取高度
height = im.size[1]
print '图片高%s'%height
# tuzi保存每个像素点值
tuzi = []
for x in range(height):   
    for y in range(width):       
        r, g, b = pix[y, x]
        # 每个点像素包含rgb三个通道
        # 注意这里读取顺序,我是横着读取,加到数组中,
        # 如果竖着读取会把图搞反了,可以自己脑补下。
        tuzi+=[r,g,b]

我们将tuzi,reshape成图片的样子

tuziArr = np.array(tuzi).reshape([height,width,3])
from matplotlib.font_manager import FontProperties  
  
def getChineseFont():  
    return FontProperties(fname='/System/Library/Fonts/PingFang.ttc')  
%matplotlib inline
from PIL import Image
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['figure.figsize'] = (20.0, 20.0)
# channel表示图片通道,取某一个通道数据方法[:,:,x]
def imshow(channel, ax, picture_data):
    tt = np.array([0]*rt.shape[0]*rt.shape[1]*3).reshape(
            [rt.shape[0],rt.shape[1], 3])
    if channel == 3:
        # 全部通道
        tt = picture_data
    else:
        tt[:,:,channel]=picture_data[:,:,channel]
    tt_img = np.array(tt, dtype='uint8')
    ax.imshow(tt_img)
    #help(ax)

plt.figure()
N = 4
fig, axes = plt.subplots(1,N)
for i in range(N):
    imshow(i, axes[i], tuziArr)
plt.show()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

转--Golang图像处理工具库,图像相似度计算,图像二值化

imgo golang图像处理工具库,图像相似度计算,图像二值化(golang image process lib) 目前只支持jpg,png 安装 go ge...

691140
来自专栏数值分析与有限元编程

列主元消去法解方程组

高斯消去法解方程组较为简单,然而如果在消去过程中出现0主元或者是主元非常小的话,消去法将失败或者数值不稳定。这时可以采用选主元的方法,进行处理。下面给出列主元消...

42090
来自专栏机器学习算法原理与实践

用scikit-learn和pandas学习Ridge回归

    本文将用一个例子来讲述怎么用scikit-learn和pandas来学习Ridge回归。

15720
来自专栏机器学习算法工程师

手把手教你搭建目标检测器-附代码

翻译:刘威威 编辑:祝鑫泉 前 言 本文译自:[http://www.hackevolve.com/create-your...

35840
来自专栏AI研习社

TensorFlow | 自己动手写深度学习模型之全连接神经网络

前半个多月总共写了三篇深度学习相关的理论介绍文章,另外两个月前,我们使用逻辑回归算法对sklearn里面的moons数据集进行了分类实验,最终准确率和召回率都达...

584100
来自专栏行者常至

009.python科学计算库seaborn(中)

版权声明:本文为博主原创文章,允许转载,请标明出处。 https://blog.csdn.net/qwdafedv/article/deta...

9020
来自专栏老秦求学

图像旋转

描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。 输入第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 <...

45170
来自专栏用户2442861的专栏

python pyplot accuracy cost曲线绘制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

13030
来自专栏机器学习、深度学习

人脸检测--SSH: Single Stage Headless Face Detector

SSH: Single Stage Headless Face Detector ICCV2017 https://github.com/mahyar...

95950
来自专栏邹成卓的专栏

三维变换矩阵的理解

3D空间中的一个点的坐标,可以用(x,y,z)来表示。对这个点的坐标变换有三种操作:缩放、平移、旋转。

2.1K20

扫码关注云+社区

领取腾讯云代金券