我实现了一个python代码,它读取二进制图像文件以显示图像。图像不清楚,没有像我在MATLAB上实现类似代码时获得的那样。我在这里附上了两张图片:(img obtained using python; Original img using matlab code)。这是相同的python代码:
import numpy as np
from matplotlib import pylab as plt
from scipy import misc
A = np.fromfile('/home/shruthi/Desktop/1485999630.bin', dtype='int16', sep="")
A = A.reshape([1216, 1216])
imgplot = plt.imshow(A)
imgplot.set_cmap('gray')
plt.show()
我还附上了MATLAB代码供参考:
file= fid = fopen('1486445720.bin');
HDR = reshape(fread(fid,1216*1216,'uint16'),1216,1216);
fclose(fid);
HRGB = demosaic(uint32(HDR'),'rggb'); % Valid for Matlab 2016 and make sense only if HDR is double
RGB = tonemap(double(HRGB), 'AdjustLightness', [0.1 1],'AdjustSaturation', 8);
答案 0 :(得分:0)
您可能想要尝试的第一件事是使用uint16
代替int16
。
您的工作matlab代码表明您的原始数据以Bayer pattern编码,这意味着颜色通道以某种方式交错。 matlab demosaic
函数分隔通道并返回更有用的表示。
你需要在你的python代码中做同样的事情。我没有找到一个“正式”的numpy函数,但你可以尝试使用/ adapt this。