【发布时间】:2020-06-20 10:47:30
【问题描述】:
我有一个包含 1,00,000 多个 .IMG 文件的数据集,我需要将这些文件转换为 .PNG / .JPG 格式,以便将 CNN 应用于简单的分类任务。
我提到了this answer,该解决方案部分对我有用。我的意思是有些图像没有正确转换。其原因,据我了解,有些图像的像素深度为 16,而有些图像的像素深度为 8。
for file in fileList:
rawData = open(file, 'rb').read()
size = re.search("(LINES = \d\d\d\d)|(LINES = \d\d\d)", str(rawData))
pixelDepth = re.search("(SAMPLE_BITS = \d\d)|(SAMPLE_BITS = \d)", str(rawData))
size = (str(size)[-6:-2])
pixelDepth = (str(pixelDepth)[-4:-2])
print(int(size))
print(int(pixelDepth))
imgSize = (int(size), int(size))
img = Image.frombytes('L', imgSize, rawData)
img.save(str(file)+'.jpg')
数据来源:NASA Messenger Mission
.IMG files and their corresponding converted .JPG Files
如果我需要提供更多信息,请告诉我。
【问题讨论】:
-
此外,所有图像的顶部边缘部分似乎都不正确。可能是因为 PIL 试图将文件顶部的元数据转换为图像?
-
您只想更改图片扩展名吗?
-
@jizhihaoSAMA 我要转换图片
-
文件 EW0220137564B.IMG 中的像素的平均值为 252,标准差仅为 3,因此该图像中没有任何有趣的东西。如果您提供更多 IMG 示例,我会仔细查看。
-
"可能是因为 PIL 试图将文件顶部的元数据转换为图像吗?"它会转换你喂它的东西,这就是设计。你有没有想过下采样到 8 位?
标签: python type-conversion png python-imaging-library jpeg