以下是一个计算 PSNR 值的 MATLAB 函数:

function psnr_value = psnr(original_image, noisy_image)
% Compute PSNR value between two images
% original_image: the original image
% noisy_image: the noisy image

% Convert images to double precision
original_image = im2double(original_image);
noisy_image = im2double(noisy_image);

% Calculate MSE
mse = mean(mean((original_image - noisy_image).^2));

% Calculate maximum pixel value
max_pixel_value = max(max(original_image));

% Calculate PSNR value
psnr_value = 20*log10(max_pixel_value/sqrt(mse));

end

使用方法:

  1. 将上述代码保存为一个 .m 文件,比如 psnr.m。
  2. 在 MATLAB 命令窗口中,输入以下命令:
original_image = imread('original_image.jpg');
noisy_image = imread('noisy_image.jpg');
psnr_value = psnr(original_image, noisy_image);

其中,'original_image.jpg' 和 'noisy_image.jpg' 分别为原始图像和噪声图像的文件名,需要根据实际情况修改。执行完毕后,psnr_value 即为 PSNR 值。

使用该函数,您可以轻松计算两幅图像之间的 PSNR 值,评估图像质量。


原文地址: https://www.cveoy.top/t/topic/mVwp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录