我正在尝试使用 python 中的 Pillow 和 cv2 来读取此文件。然而,这两个库都未能做到这一点。
文件是 here在 Google 云端硬盘上。
Pillow 引发“OSError:无法识别图像文件 0.jpg” cv2 返回无
此二进制文件的扩展名为“.jpg”,可以使用 Window 的照片查看器轻松查看。
但是,我想在 python 中读取这个二进制文件并将其解码为图像。
有什么想法吗?
最佳答案
你的文件实际上是一个JXR文件,你可以看到前几个字节是:
49 49 BC
如果将其加载到十六进制编辑器中,例如 http://hexed.it
签名已在 IANA 注册,请参阅 here .
您可以使用 imagecodecs 来阅读它像这样:
import imagecodecs
from pathlib import Path
# Slurp entire image data as binary
jxr = Path('0.jpg').read_bytes()
# Make into Numpy array
na = imagecodecs.jpegxr_decode(jxr)
print(na.shape) # prints (256, 512, 3)
或者,您可以在终端中使用 ImageMagick 将 JXR 转换为不太微软的东西:
magick input.jxr output.jpg
或者,如果您有旧的 v6 ImageMagick,请使用:
convert input.jxr output.jpg
关于python - 如果没有图像处理Python库(Pillow和cv2)无法读取,如何解码这个二进制图像文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68972564/