Reputation: 365
I have a very simple script in Matlab that opens a 'raw' binary image file and displays it. Is this easily reproducible using numpy in python? I've come across various posts discussing unpacking, dealing with endian, specifying buffers, etc. But this seems like it should be simple, based on how simple the matlab interface is
>> 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);
Upvotes: 6
Views: 28303
Reputation: 25833
This will do the same thing using numpy and 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)
I feel obligated to mention that using raw binary files to store data is generally a bad idea.
Upvotes: 11