2013-07-04 46 views
1

我在Matlab中有一个非常简单的脚本,它打开一个'原始'二进制图像文件并显示它。在Python中使用numpy可以很容易地重现吗?我碰到过各种职务讨论拆包,处理端,指定缓冲区等但这似乎应该是简单的,基于MATLAB的接口是多么简单在Python中阅读原始二进制图像

>> fileID = fopen('sampleX3.raw','rb') 

fileID = 

    1 

>> A = fread(fileID,[1024,1024],'int16'); 
size(A) 

ans = 

     1024  1024 

>> max(max(A)) 

ans = 

     12345 

>> close all; figure; imagesc(A); 
+0

你试过openCV吗?它专为计算机视觉而设计...... –

回答

4

这将使用做同样的事情numpy和matplotlib:

import numpy as np 
from matplotlib import pylab as plt 

A = np.fromfile(filename, dtype='int16', sep="") 
A = A.reshape([1024, 1024]) 
plt.imshow(A) 

我觉得有义务提及使用原始二进制文件来存储数据通常是一个坏主意。

+2

为什么你说在二进制文件中存储数据是一个坏主意? – Pablo

+0

不幸的是我的相机读出原始的二进制数据。 – Joe