MATLAB中如何将imshow后的图片保存成原始大小的?

我试图保存傅里叶变换后的频谱图,具体操作如下:I=imread('a.jpg');X=rgb2gray(I);figure;imshow(X);Y=fft2(X);fig... 我试图保存傅里叶变换后的频谱图,具体操作如下:
I=imread('a.jpg');

X=rgb2gray(I);

figure;

imshow(X);

Y=fft2(X);

figure;

imshow(log(abs(Y)),[]);

colormap(jet);

做到这一步后我就很头疼该怎么保存了,因为原图尺寸较大,用saveas或figure窗口的另存为得到的频谱图比原图画面尺寸小了很多;加了Z=uint8(log(abs(Y)));然后再用imwrite得到的图片(BMP或JPG)虽然与原图尺寸一致但是质量很差,而且不知道怎么用imwrite储存colormap(jet); 后的彩图。求高手指点!
展开
 我来答
圣鸾OJ
2015-10-07 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:113万
展开全部
可以先产生一个新的axe(同时就设定了显示的位置),再选定此axe,显示图像

% 产生新的图像显示框
hAxe=axes('Parent',gcf,... % 设置新的axe, 将'parent' 属性设置为当前窗口gcf
'Units','pixels',... %设置单位为pixels
'Position',[30 80 605 705]); % 指定axe的位置,格式为[left bottom width height], left和bottom设定了axe的左下 %角坐标,width和height设定了窗口的宽度和高度

%选定hAxe为当前axe
axes(hAxe);

%显示图像
imshow(...)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郭某人来此
2015-09-13 · TA获得超过1646个赞
知道答主
回答量:952
采纳率:100%
帮助的人:90.2万
展开全部
可以先产生一个新的axe(同时就设定了显示的位置),再选定此axe,显示图像

% 产生新的图像显示框
hAxe=axes('Parent',gcf,... % 设置新的axe, 将'parent' 属性设置为当前窗口gcf
'Units','pixels',... %设置单位为pixels
'Position',[30 80 605 705]); % 指定axe的位置,格式为[left bottom width height], left和bottom设定了axe的左下 %角坐标,width和height设定了窗口的宽度和高度

%选定hAxe为当前axe
axes(hAxe);

%显示图像
imshow(...)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
victoriajll
推荐于2016-06-21 · TA获得超过4884个赞
知道大有可为答主
回答量:654
采纳率:100%
帮助的人:1056万
展开全部
试一下行不行
F=getframe(gcf);
imwrite(F.cdata,'aa.png')%%%相当于截屏
追问
多谢你的指点,又学到一招。不过这段代码和之前用figure窗口的“另存为”得到的图效果差不多,比方说,我的原图有3307*2480这么大,用截屏或saveas之类得到的图尽管画质没有明显差异,但由于屏幕限制只有1299*913(含白框)这么大……还是希望能得到与3307*2480的原图同样大小的结果图OTL
追答
我记得saveas的帮助文件里有图片像素大小设置这一个选项,不过saveas函数的帮助文件比较复杂,也比较多,具体的我就不清楚了,你可以找一下。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式