灰度级数为2的二值图的峰值信噪比的Matlab代码
时间: 2024-05-16 15:17:55 浏览: 14
假设原始图像为I,二值化后的图像为B,可以使用以下代码计算二值图的峰值信噪比(PSNR):
```
I = imread('original_image.png'); % 读取原始图像
B = im2bw(I); % 将原始图像转换为二值图像
% 计算峰值信噪比
mse = mean(mean((double(I) - double(B)).^2));
psnr = 10 * log10(1/mse);
fprintf('PSNR: %f\n', psnr);
```
需要注意的是,由于二值图像只有0和1两个灰度级,因此峰值信噪比的最大值为无穷大。因此,一般情况下不会使用峰值信噪比来评估二值图像的质量。
相关问题
二值图的峰值信噪比的Matlab代码
以下是二值图的峰值信噪比 (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自带的im2bw函数将灰度图像转化为二值图像,代码如下:
```matlab
% 读取灰度图像
gray_img = imread('gray_image.png');
% 将灰度图像转化为二值图像,阈值为0.5
binary_img = im2bw(gray_img,0.5);
% 显示二值图像
imshow(binary_img);
```
其中,im2bw函数的第一个参数是原始灰度图像,第二个参数是二值化的阈值,可以根据实际情况调整。返回值是二值图像。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)