图像保存常用的函数有imwrite、saveas、print
1、imwrite函数的使用方法
imwrite可以保存图像处理后的图像;
保存数据的两种格式:(1)归一化(2)将double类型转为uint8
%% imwrite函数保存图像
ima=double(imread('TID/I1.BMP'));
sigma=25;
rima=ima+sigma*randn(size(ima)); % 添加噪声
imwrite(rima/255,strcat('TIDNLMresult/NoiseImg/I1_noisy.bmp'));
imwrite(uint8(rima),strcat('TIDNLMresult/NoiseImg/I1(1)_noisy.bmp'));
%imwrite保存的数据(1)归一化(2)将double类型转为uint8
2、print、saveas函数的使用方法
print保存plot函数画出的曲线图。
使用方法:print(句柄,‘保存图像类型’,’路径及名称‘)
saveas(句柄,’路径及名称‘,‘保存图像类型’)
其中句柄:figure图像的第几个,如果第一个则为1
图像类型:可以为bmp,png,具体可以通过help,这里列出png
%% print、saveas函数保存figure图像
ima=double(imread('TIDGray/I1.BMP'));
for sigma=10:5:50
rima=ima+sigma*randn(size(ima)); % 添加噪声
imgDenoise=imnlmfilt(rima);
PSNR(sigma/5-1)=psnr(ima/255,imgDenoise/255);
end
sigma=10:5:50;
figure;plot(sigma,PSNR);
%保存图像到指定路径
saveas(1,'TIDNLMresult\PSNR\I1_psnr.png','png'); %方法一
print(1,'-dpng','TIDNLMresult\PSNR\I1_psnr.png');%方法二
3、save函数的使用方法
saveas将矩阵数据保存为mat文件,可以通过load查看数据;
第二个参数为矩阵名称;
%% save函数保存数据到mat
save(strcat('TIDNLMresult\I1_psnr.mat'),'PSNR');
4、单张图像手动保存的方法
直接截图会有灰色的框(1)通过编辑—>复制图窗,就可以把图像保存在剪切板里,可以直接复制到word中。(2)文件—另存为fig或者pdf(但是要进行导出设置)!推荐第一种方法!
5、完整代码
%图像保存的几种方法
%2020.10.22 by zcp
%% imwrite函数保存图像
ima=double(imread('TIDGray/I1.BMP'));
sigma=25;
rima=ima+sigma*randn(size(ima)); % 添加噪声
imwrite(rima/255,strcat('TIDNLMresult/NoiseImg/I1_noisy.bmp'));
imwrite(uint8(rima),strcat('TIDNLMresult/NoiseImg/I1(1)_noisy.bmp'));
%imwrite保存的数据(1)归一化(2)将double类型转为uint8
%% print、saveas函数保存figure图像
%ima=double(imread('TIDGray/I1.BMP'));
for sigma=10:5:50
rima=ima+sigma*randn(size(ima)); % 添加噪声
imgDenoise=imnlmfilt(rima);
PSNR(sigma/5-1)=psnr(ima/255,imgDenoise/255);
end
sigma=10:5:50;
figure;plot(sigma,PSNR);
%保存图像到指定路径
saveas(1,'TIDNLMresult\PSNR\I1_psnr.png','png'); %方法一
print(1,'-dpng','TIDNLMresult\PSNR\I1_psnr.png');%方法二
%% save函数保存数据到mat
save(strcat('TIDNLMresult\I1_psnr.mat'),'PSNR');
imshow(uint8(rima));imshow(rima/255);
图像前后文件夹变化情况:
ps:imshow也要求图像矩阵为uint8(rima)或者rima/255