【发布时间】:2017-11-04 13:16:14
【问题描述】:
我正在尝试读取原始图像文件,但存储的图像数组似乎是一维的。不知道如何读取原始文件并绘制它。任何帮助将不胜感激
图片链接TestImage1c.raw
from scipy import misc
from scipy import ndimage
import numpy as np
import matplotlib.pyplot as plt
import math
A = np.fromfile("TestImage1c.raw", dtype='int16', sep="")
print("A.shape: %d", A.shape)
print("A: ", A)
img_gray = np.dot(A[..., :3], [0.30, 0.59, 0.11])
print("img_gray :", img_gray)
print("img_gray shape: ", img_gray.shape)
print("img_gray size: ", img_gray.size)
plt.imshow(img_gray, cmap="gray")
plt.show()
OUTPUT:
D:\Python36\python.exe D:/PycharmProjects/First/readrawimage.py
A.shape: %d (1143072,)
A: [-27746 -24987 26514 ..., 28808 -31403 18031]
img_gray : -20149.59
img_gray shape: ()
img_gray size: 1
Traceback (most recent call last):
File "D:/PycharmProjects/First/readrawimage.py", line 33, in <module>
plt.imshow(img_gray, cmap="gray")
File "D:\Python36\lib\site-packages\matplotlib\pyplot.py", line 3080, in
imshow
**kwargs)
File "D:\Python36\lib\site-packages\matplotlib\__init__.py", line 1710, in
inner
return func(ax, *args, **kwargs)
File "D:\Python36\lib\site-packages\matplotlib\axes\_axes.py", line 5194,
in imshow
im.set_data(X)
File "D:\Python36\lib\site-packages\matplotlib\image.py", line 604, in
set_data
raise TypeError("Invalid dimensions for image data")
TypeError: Invalid dimensions for image data
Process finished with exit code 1
【问题讨论】:
-
感谢您的反馈。这是一张原始图像,所以没有预览图像,也没有第一次上传。虽然我现在已经添加了一个链接。
-
它是“数字底片”意义上的
RAW图像吗?每个相机制造商都有自己的格式,因此您必须证明细节。此外,在.raw文件中,始终存在无法处理的标题部分np.fromfile -
它是一个原始图像,它的像素是交错的。 R(0,0) G(0,0) B(0,0) R(1,0) G(1,0) B(1,0) R(2,0) G(2,0) B( 2,0)
标签: python numpy matplotlib computer-vision hough-transform