python读取图片为数字矩阵(python读取图片中的文字 数字)

http://www.itjxue.com  2023-04-11 10:28  来源:未知  点击次数: 

Python如何将txt或者csv文件的数据转成矩阵?

很多时候,我们将数据存在txt或者csv格式的文件里,最后再用python读取出来,存到数组或者列表里,再做相应计算。本文首先介绍写入txt的方法,再根据不同的需求(存为数组还是list),介绍从txt读取浮点数的方法。

一、写入浮点数到txt文件:

假设每次有两个浮点数需要写入txt文件,这里提供用with关键字打开文件的方法,使用with打开文件是一个很好的习惯,因为with结束,它就会自动close file,不用手动再去flie.close()。

[python] view plain copy

with open('file_path/filename.txt','a') as file:

write_str = '%f %f\n'%(float_data1,float_data2)

file.write(write_str)

二、从txt文件提取浮点数到numpy数组或list列表

首先假设你有一个odom.txt 的文件,里面每一行的数据个数都相同,如截图所示:

1.如果你是想把这些数据读取出来,存为numpy数组,那么一句代码可以搞定:

[python] view plain copy

a = numpy.loadtxt('odom.txt')

存为numpy数组以后,a的尺寸可以用a.shape进行查看,这里应为:(14,2)也就是14行2列。如果你觉得这个形状不是你期待的,你可以用:

[python] view plain copy

b = numpy.reshape(a,(你想要的形状))

b = numpy.reshape(a,(-1,1,2))

那么b就是一个三维数组了(14,1,2)

2.如果只是想读出来,存到一个list里,那就用下面的常用python格式了:

[python] view plain copy

with open('odom.txt', 'r') as f:

data = f.readlines() #txt中所有字符串读入data

for line in data:

odom = line.split() #将单个数据分隔开存好

numbers_float = map(float, odom) #转化为浮点数

print numbers_float

用python载入图像时,为什么要用array()方法将图像转换为Numpy的数组对象?

因为矩阵里的每个位置都对应图像上的位置和数据,简单的rbg格式来说,前两个维度是宽和高,第三维度是对应的三种颜色色深。所以每张图片都是一个多维矩阵组成,转化为nunpy数组就是方便通过矩阵运算来对图像进行修改

python处理图片数据?

生成一张纯色的图片

先设置图片的颜色,接着利用Image模块的new方法新生成一张图片,png格式的图片需要设置成rgba,类似的还有rgb,L(灰度图等),尺寸设定为640,480,这个可以根据自己的情况设定,颜色同样如此。

批量生成图片

上面生成了一张图片,那要生成十张图片呢,这种步骤一样,只是颜色改变的,利用循环就可以解决。首先创建一个颜色列表,把要生成的图片颜色放进去。接着循环获取不同的颜色,保存的时候利用字符串拼接的方法改变图片的名字。

本地生成的图片

封装成函数

前面的方法已经可以批量生成图片了,为了通用性强一点,我们可以封装成函数,把哪些可以改变的参数单独抽离出来。尺寸也同样,使用的时候,可以根据自己的需要定义颜色列表和尺寸。当然还有加一些提示用语和报错兼容性,这里就不讲了。

本地生成的图片

python怎么输出数字方阵?

n = 5

temp = [str(v) for v in range(1, n+1)]

temp = ''.join(temp)

r = []

for i in range(0, n):

r.append(temp[i:] + temp[0:i])

for i in r:

print(i)

用python怎么读取mat文件的三维矩阵

如图, C是一个三维矩阵, 可以用python的scipy包读取C, 并转换为三维数组的形式

#?coding=utf-8

import?scipy.io?as?sio

import?numpy?as?np

data?=?sio.loadmat(r'C:\Users\xiligey\Desktop\C3.mat')??#?把这个路径改成你的mat路径即可

print('scipy读取三维矩阵的初步结果:?\n%s\n'?%?data)

result?=?data['C']

print('提取出其中的三维数组:?\n%s'?%?result)

结果是这样的:

(责任编辑:IT教学网)

更多

推荐网页背景文章