好的,所以我手动将MATLAB转换为Python,而且我无法转换某些片段,因为我在Python上并不是那么棒
我从一段MATLAB代码中获取了这张黑白图像。在MATLAB中,它的维度是(根据size
函数):1944 2592
我将此图像保存为.jpg,并使用以下代码在Python中打开:
img = Image.open("csm1.jpg")
img = np.array(img)
print img
我得到的输出为:
[[[255 255 255]
[255 255 255]
[255 255 255]
...,
[255 255 255]
[255 255 255]
[255 255 255]]
[[255 255 255]
[255 255 255]
[255 255 255]
...,
[255 255 255]
[255 255 255]
[255 255 255]]
[[255 255 255]
[255 255 255]
[255 255 255]
...,
[255 255 255]
[255 255 255]
[255 255 255]]
...,
[[255 255 255]
[255 255 255]
[255 255 255]
...,
[255 255 255]
[255 255 255]
[255 255 255]]
[[255 255 255]
[255 255 255]
[255 255 255]
...,
[255 255 255]
[255 255 255]
[255 255 255]]
[[255 255 255]
[255 255 255]
[255 255 255]
...,
[255 255 255]
[255 255 255]
[255 255 255]]]
[[ 0 0 0]
[ 0 0 1]
[ 0 0 2]
...,
[571 812 0]
[571 812 1]
[571 812 2]]
我不明白在MATLAB中2D的黑白照片如何在Python中成为完全白色的3D图像。我也附上了这张照片。任何人都可以帮助吗?谢谢!
答案 0 :(得分:0)
如果要在MATLAB看到的情况下保存图像数据,您需要使用imwrite
保存它,而不是先使用imshow
显示它并保存图形。
imwrite(img, 'filename.jpg')
区别在于"另存为"当您在屏幕上看到时,方法会保存图像,其中包含一个白色边框。此外,在确定输出图像的尺寸时,不考虑数据的实际尺寸,而只考虑图的尺寸。
此外,即使您的图像在MATLAB(2D)中是灰度图像,当您使用imwrite
将其保存为JPEG时,它将在保存时转换为RGB图像(3D)。