matlab使用psnr比较图片的源代码
时间: 2023-11-06 16:07:33 浏览: 69
下面是使用MATLAB计算两张图片的PSNR的示例代码:
```matlab
% 读取两张图片
img1 = imread('image1.jpg');
img2 = imread('image2.jpg');
% 将图片转为 double 类型
img1 = im2double(img1);
img2 = im2double(img2);
% 计算 MSE
mse = mean(mean((img1 - img2).^2));
% 计算 PSNR
psnr = 10 * log10(1/mse);
% 显示结果
fprintf('PSNR值为 %.2f dB\n', psnr);
```
其中,`imread`函数用于读取图片,`im2double`函数用于将图片转为 double 类型,`mean`函数用于计算平均值,`log10`函数用于计算以 10 为底的对数。计算 PSNR 的公式为:
PSNR = 10 * log10(MAX^2 / MSE)
其中,MAX 表示像素的最大值,对于 RGB 图片,MAX 的值为 255。
相关问题
amtlab中使用psnr比较俩图片的源代码
在MATLAB中,可以使用`psnr`函数计算两幅图像的峰值信噪比(PSNR)。以下是一个示例代码:
```matlab
% 读取两幅图像
img1 = imread('img1.jpg');
img2 = imread('img2.jpg');
% 计算峰值信噪比
psnr_val = psnr(img1, img2);
% 显示结果
fprintf('PSNR between img1 and img2 is %0.2f dB\n', psnr_val);
```
其中,`imread`函数用于读取图像,`psnr`函数用于计算峰值信噪比,`fprintf`函数用于显示结果。需要将`img1.jpg`和`img2.jpg`替换为实际的图像文件名。
阅读全文