superlu 发表于 2008-4-6 17:02

请教关于函数imagesc的问题

在使用imagesc绘制图像时,发现它的纵坐标值是从上至下一直增加的,与我们通常的习惯正好相反,不知各位有没有有什么好的办法使它恢复成我们通常的习惯,即从下至上增加。(我使用的版本是Matlab7.1),谢谢!

beehappy 发表于 2008-4-6 17:14

使用axis('xy');命令就可以了:lol
可以help axis:AXIS XYputs MATLAB into its default "Cartesian" axes mode.The
       coordinate system origin is at the lower left corner.The x
       axis is horizontal and is numbered from left to right.The y
       axis is vertical and is numbered from bottom to top.

superlu 发表于 2008-4-6 17:29

回复 2楼 的帖子

谢谢楼上的指点,谢谢!

timedcy 发表于 2008-4-7 10:59

谢谢2楼

熊星星星 发表于 2010-11-5 11:34

谢谢二楼~~~~~

zhouyang664 发表于 2010-11-5 18:24

本帖最后由 zhouyang664 于 2010-11-5 22:17 编辑

这样好像还有个问题,如下:
%%%%%%%
load clown
imagesc(X)
colormap(gray)
%%%%%%%
效果如下图:

axis xy
之后效果:

发现图像反了!然后我试了这样:
set(gca, 'YDir', 'normal') ;
图像也是反的,仔细思考之后,终于找到了解决办法:
%%%%%%%
load clown
imagesc(flipud(X))
colormap(gray)
axis xy
%%%%%%%
效果如下:

高手可以指点一二吗?

Happy99 发表于 2010-11-6 00:06

本帖最后由 Happy99 于 2010-11-6 00:35 编辑

与图像矩阵的储存有关, 习惯上图像的原点在左上, 而一般绘图的原点在左下, imagesc会特殊处理再绘出
有点好奇楼主的目的, 因为如此好像反而没对应
若一定要如此效果就得加上flipud, 如下
load clown; imagesc(flipud(X)); colormap(gray); axis xy

还有不得不说下楼上几位谢帖的主人, 让人怀疑有没真的试跑过:lol

网页未更新, 不知LS已解决:'(

Happy99 发表于 2010-11-6 10:18

回复 6 # zhouyang664 的帖子

感觉比较好玩的是, 语句竟然与LS一个模样!:@)

熊星星星 发表于 2010-12-9 21:29

set(gca,'ydir','normal')   这句也可以的
页: [1]
查看完整版本: 请教关于函数imagesc的问题