利用matlab代码实现图像灰度值的计算,计算ISNR和PSNR
时间: 2024-05-07 20:19:15 浏览: 111
以下是利用matlab代码实现图像灰度值的计算,计算ISNR和PSNR的示例代码:
```matlab
% 读取原始图像和处理后的图像
I1 = imread('original.jpg');
I2 = imread('processed.jpg');
% 将图像转为灰度图
I1_gray = rgb2gray(I1);
I2_gray = rgb2gray(I2);
% 计算原始图像和处理后的图像的灰度值
mean_I1 = mean(I1_gray(:));
mean_I2 = mean(I2_gray(:));
% 计算ISNR
isnr = 10*log10((mean_I2^2)/(mean_I1-mean_I2)^2);
% 计算PSNR
peaksnr = psnr(I2_gray, I1_gray);
% 显示结果
fprintf('ISNR = %f\n', isnr);
fprintf('PSNR = %f\n', peaksnr);
```
其中,`imread()`函数用于读取图像,`rgb2gray()`函数用于将图像转为灰度图,`mean()`函数用于计算灰度值的均值,`psnr()`函数用于计算PSNR。
需要注意的是,计算ISNR需要原始图像和处理后的图像的灰度值均值,而计算PSNR需要原始图像和处理后的图像作为输入。
相关问题
小波变换中PSNR计算matlab代码
在小波变换中,PSNR(Peak Signal-to-Noise Ratio)是一种常用的评估图像质量的指标。下面是使用MATLAB计算PSNR的示例:
```matlab
% 假设原始图像为A,重建图像为B
A = imread('原始图像路径'); % 读取原始图像
B = imread('重建图像路径'); % 读取重建图像
% 计算MSE(Mean Squared Error)
mse = mean((A(:) - B(:)).^2);
% 计算最大像素值
max_value = double(max(A(:)));
% 计算PSNR
psnr = 10 * log10((max_value^2) / mse);
% 显示PSNR结果
fprintf('PSNR值为:%f dB\n', psnr);
```
请将代码中的"原始图像路径"和"重建图像路径"替换为你实际的图像路径。运行代码后,将会输出PSNR的值,单位为dB。
阅读全文