matlab 关于保存图像的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 关于保存图像的问题相关的知识,希望对你有一定的参考价值。

在matlab中使用函数imwrite来保存图像,但是在如下的循环当中,这样运行却只能保存最后的一幅图片,怎样改正才能保存所有的图片呢?

for i=1:5
J=I(:,i:i+23
);
figure,imshow(J);
imwrite(J,['C:\Documents and Settings\Administrator\桌面\mm\sw\' '.bmp']);
end

希望会的人能够指导一下,谢谢!

imwrite(J,['C:\Documents and Settings\Administrator\桌面\mm\sw\' 'num2str(i) '.bmp']);
%这样不同的图片有编号i.
参考技术A 用save命令
save 文件名.格式 变量

关于matlab里的PSNR问题

为了衡量图像重构效果,采用客观图像质量评价指标PSNR 来表征重构图像块和相应原始图像块之间的差别.下图是图像在不同采样率下每幅图像各个块PSNR 值的分布情况,块采用从上到下,从到右的方式进行排列,横坐标表示块的分布,纵坐标表示重构图像各个块的PSNR 值.

想请教一下这样的图该怎样画?

%Project: Calculates the PSNR (Peak Signal to Noise Ratio)
% of images A and A\', both of size MxN
function [A] = psnr(base,result)
% convert to doubles
% base=double(base);
% result=double(result);
[M,N]=size(base);
b_base=block_im(base,8);
b_result=block_im(result,8);
for i=1:8
for j=1:8
% m_base(i,j)=max(max(double(b_basei,j).^2));
m_base(i,j)=max(max(im2double(b_basei,j).^2));
end
end
% psnr_num=double(M*N*max(m_base(:)));
psnr_num=M*N*max(m_base(:));
for i=1:8
for j=1:8
% s_dif(i,j)=sum(sum(double(b_difi,j).^2));
s_dif(i,j)=sum(sum(double(im2double(b_basei,j)-im2double(b_resulti,j)).^2));
end
end
% psnr_den=double(sum(s_dif(:)));
psnr_den=sum(s_dif(:));

% psnr_num=M*N*max(max(base.^2)); % calculate numerator用信号功率最大值乘以象素点个数)); % calculate den
% psnr_den=sum(sum((base-result).^2ominator 噪声的功率之和
A=10*log10(psnr_num/psnr_den); % calculate PSNR
参考技术A 请问你相应的数据已经有了吗?如果数据已经有了很好画啊。追问

我做图像处理,有原图各种采样率也试验过,现在就是相对比一下在不同采样率下的PSNR对比,但是不知道该怎么办?

追答

按照上面那个图的意思就是你需要得到以下数据才到画图:某一采样率(比如说20%采样率)下分块为0,10,....,60时你计算得到的psnr值。然后再画图。

追问

有没有画类似这种图的代码可以参考下

追答

假设变量a,b,c,d中分别存放的是四种采样率下的psnr值,画图的话就是
plot(a);hold on;
plot(b,'-');hold on;
plot(c,'o');hold on;
plot(d);hold on;

追问

就以上图而言,我有块数为10、20、30......60的在各种采样率下的值,然后去画图,你给的代码画的只是一个点而不是一条线。

追答

不是啊,你把同一采样率下10,20,30...的值都放在a,b,c,d里,然后画图就可以了。

追问

如你所说画的图应该是几个点构成的线,而上图是不规则的我感觉这应该是用某种函数函数生成的

追答

你前面问的仅是画图的问题。如果上面的图是根据你现有的数据拟合出来的那是另外一个问题。你要先看看这个图到底是怎么得来的,文献里面应该也有说吧。

以上是关于matlab 关于保存图像的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于MATLAB读入图像的像素值出错问题(解决过程中发现:保存了假的.png图像)

matlab如何让调整保存图像的大小

保存matlab中已分割的图像

MATLAB矩阵保存为图像问题,为啥保存图像为空白? RGB值为255。

matlab gui图像带legend保存

在 MATLAB 中保存非常大的图像