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