如何打开带有奇怪自定义标头的 .RAW 文件

如何打开带有奇怪自定义标头的 .RAW 文件

我有一个奇怪的 .raw 文件,格式如下,我需要打开它来完成课堂项目。它的结构如下,以 487x414 照片为例:

  • 行数为两个无符号字节(01E7)
  • 列数为两个无符号字节(019E)
  • 代表每个像素的位数(始终为 8)
  • 实际图像数据

该项目是在 .raw 文件上运行边缘检测,但教授说我应该能够使用任何旧的图像编辑软件打开它(显然,他希望我得到一个窗口提示,让我设置标题中的字节数),所以我尝试了以下方法但无济于事:

  • Paint.net
  • Photoshop Elements
  • Adobe Lightroom
  • 图像魔术师
  • 瘸子
  • 直流电阻

我正在双启动 Ubuntu 和 Windows,所以如果有人对如何显示此文件有任何想法,(我目前正尝试将其作为直方图加载到 OpenCV 中,但我希望有一些东西可以检查我的结果),我将不胜感激。

答案1

我最终不得不编写一个自定义 Python 脚本,你可以找到这里。这是重点部分。

#Load the raw file
f = open(filename,'rb') # switch to command line args later
#Because the byte order is weird
a = f.read(1)
b = f.read(1)
#First line is rows
rows = int((b+a).encode('hex'), 16)
a = f.read(1)
b = f.read(1)
#Second line is columns
cols = int((b+a).encode('hex'), 16)
#Last byte is encoding, but we're just going to ignore it
f.read(1)
#And everything else is 8 bit encoded, so let's load it into numpy and display it with matplotlib
bin_image = np.fromstring(f.read(), dtype=np.uint8)
#Change the shape of the array to the actual shape of the picture
bin_image.shape = (cols, rows)

fig = pylab.figure()
#Display the original image
fig.add_subplot(1,4,1)
pylab.imshow(bin_image, cmap=cm.gray)

相关内容