使用Python读取二维数组,将二维数组输出为图片,并保存在本地。
代码如下:
# coding=utf8
from PIL import Image
import numpy as np
import imageio
import matplotlib.pyplot as pyplot
a = 300
b = 500
x = 20
y = 20
w = 40
h = 80
# 生成图片矩阵
def Gener_mat(a, b, x, y, w, h):
img_mat = np.zeros((a, b), dtype=np.int_)
for i in range(0, a):
for j in range(0, b):
img_mat[i][j] = 0
for i in range(x, x + w):
for j in range(y, y + h):
img_mat[i][j] = 1
return img_mat
# 输出图片
def out_img(data):
data = (data * 255.0).astype('uint8') # 转换数据类型
new_im = Image.fromarray(data) # 调用Image库,数组归一化
# 显示新图片
pyplot.imshow(data)
pyplot.show()
# 保存图片到本地
imageio.imsave('new_img.jpg', new_im)
img_mat = Gener_mat(a, b, x, y, w, h)
out_img(img_mat)
其中 Gener_mat
函数用于生成一个300*500
的矩阵,矩阵大部分值为0,在坐标(20, 20)
处有一个40*80
的区域,值为1。
矩阵转为的图片保存在与代码同级的目录下,图片为:
如果不能正常显示图片,出现报错:
MatplotlibDeprecationWarning: Support for FigureCanvases without a required_interactive_framework attribute was deprecated in Matplotlib 3.6 and will be removed two minor releases later.
是Pycharm设置的问题。点击菜单栏 File——Setting——Tools——Python Scientific,取消勾选“Show plots in tool window”,然后点击右下角的“OK”,即可完成配置。再次启动,就能正常显示了。
-
代码
+关注
关注
30文章
4905浏览量
71002 -
python
+关注
关注
56文章
4831浏览量
87391 -
数组
+关注
关注
1文章
420浏览量
26730
发布评论请先 登录
基于STM32的二维码识别源码+二维码解码库lib
JCMsuite中对二维光栅的定义和仿真
基于RK3576开发板的二维码生成

请问LabView中如何直接发送二维数组到DMD上显示?
二维周期光栅结构(菱形)光波导的应用
二维扫码头有效扫描距离是多少,影响二维扫描头扫码的因素有哪些

RS232接口的二维影像扫描引擎,广泛用在医疗设备上扫一维二维码

二维内嵌扫码模组用于自助储物柜,快速扫描各种一维二维条码

指针数组和二维数组有没有区别
二维码识读设备有哪些类型

labview按行读取二维数组之后再按读取顺序重新组成二维数组如何实现?
请问labview是否无法向matlab传递3维数组
二维力传感器怎么安装,在安装二维力传感器的安装步骤

评论