我有一个在matlab中创建的图像矩阵,我将用它作为我在theano编码的卷积神经网络的输入。我使用numpy.loadtxt
导入矩阵,并且在检查时,矩阵看起来与在matlab中创建的矩阵相同。在matlab中使用imshow()
时,我会更正显示图像,但是,使用matplotlib imshow()
时,图像会被转置。有谁知道这个的原因?
matlab代码:
img = dlmread('kthImagesCheck.txt');
imshow(reshape(img(:,1), [104,104]))
matplotlib的代码:
img = numpy.loadtxt("kthImagesCheck", delimiter = ",")
imshow(reshape(img[:,0],[104,104])
我会发布图片,但我是新的stackoverflow,我还没有足够的声誉。
干杯,
答案 0 :(得分:1)
Matlab和python有一种不同的方式将数组存储在内存中。 Matlab首先保存数组列,而python使用行优先方法 例如,考虑一个2乘2的矩阵
M = [1, 2
3, 4]
在内存中,matlab将矩阵保存为[1 3 2 4]
,而python的顺序为[1 2 3 4]
。此效果会使您的图像转换。
考虑在保存之前在Matlab中转置图像 - 这样数据就会以与python中相同的顺序存储在内存中。