峰值信噪比matlab代码
时间: 2023-11-25 08:55:27 浏览: 59
峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)是衡量图像质量的一种常用指标。其计算公式为:
PSNR = 10 * log10((MAX^2) / MSE)
其中,MAX为像素值的最大值,通常为255;MSE为均方误差,计算公式为:
MSE = 1 / (M * N) * ∑[i=1:M, j=1:N] (I(i,j) - K(i,j))^2
其中,M和N分别为图像的宽和高,I为原图像,K为经过压缩或其他处理后的图像。
下面是一个简单的MATLAB代码示例,用于计算两幅图像之间的PSNR:
```
function psnr_value = psnr(img1, img2)
% img1和img2分别为两幅图像的矩阵表示
% 计算图像宽和高
[M, N] = size(img1);
% 计算像素值最大值
MAX = 255;
% 计算均方误差
mse = sum(sum((img1 - img2) .^ 2)) / (M * N);
% 计算PSNR值
psnr_value = 10 * log10((MAX^2) / mse);
end
```
使用方法:
1. 将上述代码保存为一个.m文件,例如psnr.m;
2. 在MATLAB命令窗口中输入以下命令:
```
img1 = imread('image1.jpg');
img2 = imread('image2.jpg');
psnr_value = psnr(img1, img2);
```
其中,'image1.jpg'和'image2.jpg'分别为两幅图像的文件名,可以更改为实际使用的文件名。执行完上述命令后,psnr_value即为两幅图像之间的PSNR值。
阅读全文
相关推荐












