使用numpy模块输出纯色
2018-07-03 本文已影响50人
米酒真香
import numpy as np
import matplotlib.pyplot as plt
data = np.zeros((100,200,3),dtype="int") # zeros的shape参数为(100,200,3)表示是一个100行200列,每个点有3个元素的阵列。即长200px,高100px的二维像素集,dtype="int"表示像素集可以用256的rgb的数组(list)表示。zeros表示这个100行200列的像素阵列的每一个像素点都是rgb(0,0,0),即[0,0,0]
data
# data 数据
array([[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
...,
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]])
img = plt.imshow(data) # 显示图像
output_1_0.png
data[::,::,0:1] = 255 # 将阵列的每一个点的第一个数值修改为255,其他值不变
data # 再次查看data数据
# 每一行,每一列的像素点的第一个数值已经变成了255,即rgb(255,0,0) 纯红色
array([[[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
...,
[255, 0, 0],
[255, 0, 0],
[255, 0, 0]],
[[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
...,
[255, 0, 0],
[255, 0, 0],
[255, 0, 0]],
[[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
...,
[255, 0, 0],
[255, 0, 0],
[255, 0, 0]],
...,
[[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
...,
[255, 0, 0],
[255, 0, 0],
[255, 0, 0]],
[[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
...,
[255, 0, 0],
[255, 0, 0],
[255, 0, 0]],
[[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
...,
[255, 0, 0],
[255, 0, 0],
[255, 0, 0]]])
plt.imshow(data) # 显示图像
<matplotlib.image.AxesImage at 0x222114e1b00>
output_3_1.png
data[::,::,0:1] = 0 # 先把每个像素点的第一个值归0
data[::,::,1:2] = 255 # 再把每一个像素点的第2个值修改为255,即 rgb(0,255,0) 纯绿色
data
array([[[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0],
...,
[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0]],
[[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0],
...,
[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0]],
[[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0],
...,
[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0]],
...,
[[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0],
...,
[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0]],
[[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0],
...,
[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0]],
[[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0],
...,
[ 0, 255, 0],
[ 0, 255, 0],
[ 0, 255, 0]]])
plt.imshow(data)
<matplotlib.image.AxesImage at 0x222115452e8>
output_5_1.png
data[::,::,1:2] = 0 # 把每一个像素点的第2个值归0
data[::,::,2:3] = 255 # 第3个值改为255,rgb(0,0,255) 纯蓝色
data
array([[[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255],
...,
[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255]],
[[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255],
...,
[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255]],
[[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255],
...,
[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255]],
...,
[[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255],
...,
[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255]],
[[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255],
...,
[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255]],
[[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255],
...,
[ 0, 0, 255],
[ 0, 0, 255],
[ 0, 0, 255]]])
plt.imshow(data)
<matplotlib.image.AxesImage at 0x2221159c908>
output_7_1.png
data[::,::,2:3] = 0 # 把每一个像素点的第3个值归0
data[::,::,0:2] = 255 # 前2个值改为255,rgb(255,255,0)
data
array([[[255, 255, 0],
[255, 255, 0],
[255, 255, 0],
...,
[255, 255, 0],
[255, 255, 0],
[255, 255, 0]],
[[255, 255, 0],
[255, 255, 0],
[255, 255, 0],
...,
[255, 255, 0],
[255, 255, 0],
[255, 255, 0]],
[[255, 255, 0],
[255, 255, 0],
[255, 255, 0],
...,
[255, 255, 0],
[255, 255, 0],
[255, 255, 0]],
...,
[[255, 255, 0],
[255, 255, 0],
[255, 255, 0],
...,
[255, 255, 0],
[255, 255, 0],
[255, 255, 0]],
[[255, 255, 0],
[255, 255, 0],
[255, 255, 0],
...,
[255, 255, 0],
[255, 255, 0],
[255, 255, 0]],
[[255, 255, 0],
[255, 255, 0],
[255, 255, 0],
...,
[255, 255, 0],
[255, 255, 0],
[255, 255, 0]]])
plt.imshow(data)
<matplotlib.image.AxesImage at 0x222115f3eb8>
output_9_1.png
data[::,::,0:2] = 0 # 每个像素点的前2个值归0,rgb(0,0,0)
data[::,::,1:3] = 255 # 后2个值改为255,rgb(0,255,255)
data
array([[[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255],
...,
[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255]],
[[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255],
...,
[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255]],
[[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255],
...,
[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255]],
...,
[[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255],
...,
[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255]],
[[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255],
...,
[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255]],
[[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255],
...,
[ 0, 255, 255],
[ 0, 255, 255],
[ 0, 255, 255]]])
plt.imshow(data)
<matplotlib.image.AxesImage at 0x22211654470>
output_11_1.png
data[::,::,1:2] = 0 # 每个像素点的第个值归0,rgb(0,0,255)
data[::,::,0:1] = 255 # 第1个值改为255,rgb(255,0,255)
data
array([[[255, 0, 255],
[255, 0, 255],
[255, 0, 255],
...,
[255, 0, 255],
[255, 0, 255],
[255, 0, 255]],
[[255, 0, 255],
[255, 0, 255],
[255, 0, 255],
...,
[255, 0, 255],
[255, 0, 255],
[255, 0, 255]],
[[255, 0, 255],
[255, 0, 255],
[255, 0, 255],
...,
[255, 0, 255],
[255, 0, 255],
[255, 0, 255]],
...,
[[255, 0, 255],
[255, 0, 255],
[255, 0, 255],
...,
[255, 0, 255],
[255, 0, 255],
[255, 0, 255]],
[[255, 0, 255],
[255, 0, 255],
[255, 0, 255],
...,
[255, 0, 255],
[255, 0, 255],
[255, 0, 255]],
[[255, 0, 255],
[255, 0, 255],
[255, 0, 255],
...,
[255, 0, 255],
[255, 0, 255],
[255, 0, 255]]])
plt.imshow(data)
<matplotlib.image.AxesImage at 0x222114af908>
output_13_1.png