MATLAB中运用imagesc函数显示图像,怎么出来的图像与原图像比例不一样?

本人使用imagesc函数显示图像,因为该参数可以加colorbar功能,但是显示的图像和原图像比例不一样,不知道什么原因?而且,colorbar上的数字字体大小虽然可以改变但是一存储,改大的字体又还原了。难道是此功能的matlab中bug?若有哪位知道怎么解决该问题,不甚感激!
imagesc(im2);
axis image%图释%保持图片显示比例


可以参考这个帖子:http://www.coofish.org/post/284.html

显示图像的最基本的手段是使用image函数。该函数还产生了图像对象的句柄,并允许对对象的属性进行设置。此外,imagesc函数也具有image的功能,所不同的是imagesc函数还自动将输入数据比例化,以全色图的方式显示。
Originally posted by kk_2010 at 2011-06-16 1744:
imagesc(im2);
axis image%图释%保持图片显示比例


可以参考这个帖子:http://www.coofish.org/post/284.html

显示图像的最基本的手段是使用image函数。该函数还产生了图像对象的句柄,并允许 ...
请问如果想保持原比例显示全色图该怎么命令呢?
MATLAB Function Reference   colormap 


Set and get the current colormap 

Syntax

colormap(map)
colormap('default')
cmap = colormap

% Display and color the new image:
imagesc(X)
axis image
colormap(bone)

选择利用colormap的参数。
Originally posted by kk_2010 at 2011-06-16 1930:
MATLAB Function Reference   colormap 


Set and get the current colormap 

Syntax

colormap(map)
colormap('default')
cmap = colormap

% Display and color the new image:
imagesc(X)
axis ...
我试过,可是这和用imshow(X,map)显示的图出现在显示屏的比例并不一致,不知道什么原因,我希望生成的彩色图与原图大小一样,而不是缩放后显示。不过还是谢谢你热心了。
不使用imagesc,因为它会自动对读入的图像数据进行缩放。

使用下面的方法:

  iptsetpref('ImshowAxesVisible','on')
imshow(img);colormap(pink);colorbar;
Originally posted by kk_2010 at 2011-06-17 1622:
不使用imagesc,因为它会自动对读入的图像数据进行缩放。

使用下面的方法:

  iptsetpref('ImshowAxesVisible','on')
imshow(img);colormap(pink);colorbar;
现在是matlab中imshow函数显示图片大小比例是一致,但是为什么与用window照片查看器显示图片大小比例不一致?而且,colorbar字体大小更改好,为什么一储存就还原?对于这种带colorbar的显示图应该如何储存?
参考下面的代码:根据图片所在axes位置,和colorbar所设置的字体大小,调整所要拓展的长度和宽度。

img=imread('cameraman.tif');
ratio=size(img,2)/size(img,1);
imshow(img);axis on;
hcolor=colorbar('FontSize',12); ;axis on;
%%%%%%%%%%
set(gca, 'units', 'pixel');
h=get(gcf,'CurrentAxes');
pos=get(h,'position');

set(hcolor, 'units', 'pixel');
posbar=get(hcolor,'position');

posxy=;
f = getframe(gcf,posxy);%delete(gcf);
imwrite(f.cdata,'color.jpg');

%%%或者这样
img=imread('cameraman.tif');
imshow(img);axis on;
colorbar('FontSize',12); ;axis on
f = getframe(gcf);%delete(gcf);
imwrite(f.cdata,'color.jpg');
Originally posted by kk_2010 at 2011-06-18 1603:
参考下面的代码:根据图片所在axes位置,和colorbar所设置的字体大小,调整所要拓展的长度和宽度。

img=imread('cameraman.tif');
ratio=size(img,2)/size(img,1);
imshow(img);axis on;
hcolor=colorbar(' ...
谢谢你的回答,可是我发现imshow在全屏显示图片时好像把图片放大了,而imtool可以全屏无缩放显示图片,如何能在无缩放情况下用imshow全屏显示图片?
iptsetpref('ImshowBorder','tight');
imshow(I)
Originally posted by kk_2010 at 2011-06-19 1937:
iptsetpref('ImshowBorder','tight');
imshow(I)
虽然这个答案与我想要的结果有点距离,但我还是找到了一种解决方法,谢谢你的帮助。:)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值