matlab计算图像的 psnr函数
时间: 2024-06-14 14:05:01 浏览: 103
计算PSNR的程序,matlab的!
5星 · 资源好评率100%
MATLAB中可以使用psnr函数来计算图像的峰值信噪比(PSNR)。下面是一个MATLAB实现的例子:
```matlab
function PSNR = psnr(f1, f2)
% 计算两幅图像的峰值信噪比
% f1、f2: 两幅图像
k = 8; % k为图像表示的每个像素点所用的二进制位数,即位深。
fmax = 2.^k - 1;
a = fmax.^2;
MSE = (double(im2uint8(f1)) - double(im2uint8(f2))).^2;
b = mean(mean(MSE));
PSNR = 10*log10(a/b);
end
```
这个函数接受两个输入参数f1和f2,分别表示两幅图像。函数首先计算图像的位深k,然后根据位深计算图像的最大像素值fmax。接下来,函数将输入图像转换为uint8类型,并计算两幅图像的均方误差(MSE)。最后,函数根据公式PSNR = 10*log10(a/b)计算峰值信噪比,并将结果返回。
阅读全文