二值图的峰值信噪比的Matlab代码
时间: 2024-05-15 07:13:39 浏览: 9
以下是二值图的峰值信噪比 (Peak Signal-to-Noise Ratio, PSNR) 的 Matlab 代码示例:
```matlab
% 读取原始图片和噪声图片
I = imread('original_image.bmp');
J = imread('noisy_image.bmp');
% 将RGB图像转换为灰度图像
I = rgb2gray(I);
J = rgb2gray(J);
% 计算峰值信噪比
mse = mean((I(:)-J(:)).^2);
psnr = 10*log10(255^2/mse);
% 显示结果
fprintf('PSNR = %f\n', psnr);
```
其中,`I` 和 `J` 分别是原始图片和噪声图片的灰度图像矩阵,`mse` 是均方误差,`psnr` 是峰值信噪比,单位为分贝(dB)。这里假设图片的像素值范围为 0~255。
相关问题
读取已有两张图像峰值信噪比matlab代码
以下是读取两张图像并计算其峰值信噪比的 Matlab 代码:
```matlab
% 读取图像
img1 = imread('image1.jpg');
img2 = imread('image2.jpg');
% 计算峰值信噪比
PSNR = psnr(img1, img2);
% 显示结果
fprintf('图像1和图像2的峰值信噪比为 %.2f dB\n', PSNR);
```
其中,`imread` 函数用于读取图像,`psnr` 函数用于计算峰值信噪比。在上述代码中,我们将第一张图像命名为 `image1.jpg`,第二张图像命名为 `image2.jpg`,你需要将代码中的文件名替换为你自己的图像文件名。最后,我们使用 `fprintf` 函数输出计算结果。
峰值信噪比matlab代码
计算峰值信噪比(PSNR)的Matlab代码如下:
```matlab
function psnr = calculate_psnr(original_image, noisy_image)
% 计算峰值信噪比(PSNR)
% original_image: 原始图像
% noisy_image: 受噪声影响的图像
% 将图像转换为double类型
original_image = double(original_image);
noisy_image = double(noisy_image);
% 计算MSE
mse = mean(mean((original_image - noisy_image).^2));
% 计算PSNR
max_pixel = 255; % 假定像素值范围为0-255
psnr = 10 * log10(max_pixel^2/mse);
```
其中,`original_image` 是原始图像,`noisy_image` 是受噪声影响的图像。函数返回的是PSNR值,单位为分贝(dB)。