帮我写一个计算图像峰值信噪比(PSNR)的matlab代码
时间: 2023-06-17 09:04:31 浏览: 152
求图像峰值信噪比PSNR的程序
5星 · 资源好评率100%
当参考图像和待比较图像均为灰度图像时,计算图像的峰值信噪比(PSNR)的公式为:
```
PSNR = 10*log10((maxVal^2)/MSE)
```
其中,maxVal是像素值的最大值,通常为255,MSE是均方误差,计算公式如下:
```
MSE = sum((refImg(:)-compImg(:)).^2)/(M*N)
```
其中,refImg和compImg分别是参考图像和待比较图像,M和N分别是图像的宽度和高度。
那么,下面是一个计算图像峰值信噪比(PSNR)的matlab代码:
```matlab
function psnr = calcPSNR(refImg, compImg)
% 计算图像的峰值信噪比(PSNR)
% 确定像素值的最大值
maxVal = 255;
% 计算均方误差(MSE)
[M, N] = size(refImg);
mse = sum((refImg(:)-compImg(:)).^2)/(M*N);
% 计算峰值信噪比(PSNR)
psnr = 10*log10((maxVal^2)/mse);
end
```
在使用时,可以将参考图像和待比较图像作为参数传入该函数中,即可得到它们的峰值信噪比(PSNR)。
阅读全文