MATLAB计算一个图片psnr
时间: 2023-08-03 09:07:28 浏览: 136
可以使用MATLAB内置函数`psnr`来计算一张图片的PSNR值。以下是一个示例代码:
```matlab
img = imread('image.jpg');
ref = imread('reference.jpg');
psnr_value = psnr(img, ref);
disp(['PSNR value: ', num2str(psnr_value)]);
```
其中,`imread`函数用于读取图片,`psnr`函数用于计算PSNR值。请将`image.jpg`替换为你要计算的图片文件名,将`reference.jpg`替换为参考图片文件名(即原始图片或者无损压缩的图片)。运行代码后,输出的结果是该张图片的PSNR值。
相关问题
MATLAB计算两个图片psnr
可以使用MATLAB内置函数`psnr`来计算两个图片的PSNR值。以下是一个示例代码:
```matlab
img1 = imread('image1.jpg');
img2 = imread('image2.jpg');
psnr_value = psnr(img1, img2);
disp(['PSNR value: ', num2str(psnr_value)]);
```
其中,`imread`函数用于读取图片,`psnr`函数用于计算PSNR值。请将`image1.jpg`和`image2.jpg`替换为你要计算的图片文件名。运行代码后,输出的结果是两张图片的PSNR值。
matlab计算psnr
可以使用以下代码在MATLAB中计算PSNR:
function [output] = PSNR(img1, img2)
if sum(sum(img1 - img2)) == 0
error('Those pictures are the same');
end
MAX = 1; % 图像有多少灰度级(我这里定为1)
% 归一化
if (max(max(img1)) - min(min(img1))) ~= 0
img1 = (img1 - min(min(img1))) ./ (max(max(img1)) - min(min(img1)));
end
if (max(max(img2)) - min(min(img2))) ~= 0
img2 = (img2 - min(min(img2))) ./ (max(max(img2)) - min(min(img2)));
end
MSE = sum(sum((img1 - img2) .^ 2)) / (1024 * 1024); % 图片像素设为1024 x 1024
output = 20 * log10(MAX / sqrt(MSE)); % 峰值信噪比
end
阅读全文