2012-12-04 101 views
3

我有一个简单的代码在Matlab中显示图像。我使用imread()来读取它,并使用imshow()来显示它。下面的代码,结果没有正确显示。希望可以有人帮帮我。Matlab imshow()没有正确显示图像

img = imread('/home/samuelpedro/Desktop/API - Projecto/coimbra_aerea.jpg'); 
figure, imshow(img); 

产生的图像在下面。 enter image description here

此外,如果我选择将它保存为文件作为新的JPG保存正确。

更新1:

古怪,如果我选择显示在首轴>图像处理,校正

+0

请修复图像链接,或解释什么不正确显示。 – bla

+0

@natan下载链接并将.png添加为文件的扩展。这个问题看起来像是一遍又一遍地平铺图片。 –

+0

谢谢SamuelNLP,请你也可以添加jpg文件,这样我们就可以复制这个美丽而奇怪的错误... – bla

回答

3

在您的屏幕截图锁定,x和y蜱丢失。它们应该出现在Matlab的标准配置中。也许有些东西只是在Matlab配置中搞砸了。尝试使用全新的~/.matlab文件夹执行此操作(以前重命名旧文件夹)。

或者......再次通过您的屏幕截图判断,这看起来像在后台的Ubuntu/Unity。 Unity需要加速(OpenGL),对于某些Linux图形驱动程序可以是随机的。你可能想尝试在一个“干净的”X服务器(也许是twm环境)中启动matlab来排除这个问题。

将图像保存为(未压缩的)位图(bmp)并用imread读取。如果jpg被imread-routine搞乱了,这应该排除这一点。

最后但并非最不重要的一点,你的磁盘上的JPG格式的副本,一些翻转的位。在文件的副本上运行md5sums。

+0

奇怪的是,如果我选择在首选项>图像处理中显示轴,则会更正 – SamuelNLP