在查看灰度图的时候有时候会有像素值差距极小的情况,这个时候肉眼难以分辨,虽然可以用matlab进行读取并对像素值进行操作,但是matlab体积庞大,打开较慢,而且还是收费软件,所以我们使用python进行处理。
这段Python代码使用了PIL库来打开指定路径下所有的PNG文件,并将像素信息输出到同名的TXT文件中。
首先,使用os.listdir()
函数列出指定路径下的所有文件名,并将它们存储在列表filenames
中。
接着,使用for
循环遍历每个文件名。如果文件名包含.png
,则打开该PNG文件,并将新文件的名称设置为原文件名去掉后缀.png
后加上.txt
。
然后,获取图像的宽度和高度,并使用两个嵌套的for
循环遍历每个像素。对于每个像素,使用im.getpixel()
函数获取其RGB颜色值,并将其写入文件中。最后,关闭文件并结束循环。
from PIL import Image
import os
filenames = os.listdir("./") # 与该py文件同一文件夹下或者改为任何文件夹
print(filenames)
for filename in filenames:
if filename.find(".png",-4) != -1: # 读取到的所有文件的名字从后往前查找时候有“.png”,即拓展名,也可以改成其他.jpg等,并修改后面的数字。
im=Image.open(filename)
fh=open(filename[0:-4]+".txt","a") # 将读取到的像素值写入同名的txt文档中
width=im.size[0]
height=im.size[1]
for i in range(0,height):
for j in range(0,width):
cl=im.getpixel((j,i))
fh.write(str(cl))
fh.write("\n")
fh.close()