【发布时间】:2023-02-04 22:48:20
【问题描述】:
对不起我的英语,但这不是我的母语。
我想创建一个程序:
- 将 jpeg 或 png 图像转换为数组(非常重要:我想要一个仅由图像像素具有的值组成的数组,而不是元数据或其他信息。我可以在其中选择图像的每个特定像素).
- 将此数组保存在 txt 文件中。
- 将仅由图像像素值组成的数组转换回 jpg 或 png 图像并将其保存在文件中。
要求:
- 我用我写的程序创建的数组是否只由图像的像素值组成?还有元数据或其他信息吗?
- 这是从图像中删除元数据的有效方法吗?
- 这是创建逐像素表示该图像的数组的有效方法吗?
- 这是将 png 图像转换为 jpeg 或将 jpeg 图像转换为 png 的有效方法吗?
谢谢你!
这是我创建的程序,有什么意见吗?
import numpy as np
from PIL import Image
import sys
img_data = Image.open("imagea.jpeg")
img_arr = np.array(img_data)
np.set_printoptions(threshold=sys.maxsize)
print(img_arr.shape)
new_img = Image.fromarray(img_arr)
new_img.save("imageb.jpeg")
print("Image saved!")
file = open("file1.txt", "w+")
content = str(img_arr)
file.write(content)
file.close()
print("Finished!")
【问题讨论】:
-
您的想法是在不保留元数据的情况下将 jp(e)g 转换为 png?所以是的,因为无论如何使用
img.save('your_name.png', 'PNG')PIL 方法都不会发生这种情况。
标签: python arrays image-processing metadata