使用matlab画出Cameraman图像的直方图
时间: 2024-01-09 12:04:37 浏览: 332
下面是使用MATLAB绘制Camerman图像的直方图的代码:
```matlab
% 读取Cameraman图像
img = imread('cameraman.tif');
% 绘制直方图
imhist(img);
```
运行以上代码,将会在MATLAB的图形窗口中显示出Camerman图像的直方图。如果需要保存图片,可以使用MATLAB提供的保存命令,例如:
```matlab
% 保存直方图为PNG格式
print('cameraman_hist.png', '-dpng');
```
以上代码将会保存直方图为PNG格式的图片文件。
相关问题
使用MatLab的直方图均衡函数(histeq)对Cameraman图像进行直方图均衡
好的,以下是使用MatLab的直方图均衡函数(histeq)对Cameraman图像进行直方图均衡的步骤:
1. 首先读入Cameraman图像并显示:
```
cameraman = imread('cameraman.tif');
imshow(cameraman);
```
2. 对Cameraman图像进行直方图均衡:
```
cameraman_eq = histeq(cameraman);
```
3. 显示直方图均衡后的Cameraman图像:
```
imshow(cameraman_eq);
```
完整代码如下:
```
cameraman = imread('cameraman.tif');
imshow(cameraman);
cameraman_eq = histeq(cameraman);
imshow(cameraman_eq);
```
运行以上代码即可得到直方图均衡后的Cameraman图像。
对MATLAB自带的图像cameraman进行直方图均衡化,并显示均衡化后的效果
在MATLAB中对`cameraman`图像进行直方图均衡化的过程可以分为几个步骤:
1. 加载图像:首先,使用`imread`函数加载`cameraman`图像数据,假设其名为`img`。
```matlab
img = imread('cameraman.tif'); % 替换为你的图片路径
```
2. 计算原图像的直方图:`histeq`函数会自动计算像素值的概率密度函数。
```matlab
histogram = histcounts(double(img), 'Normalization', 'probability');
```
这里我们先将图像转换为双精度数,因为`histcounts`函数需要连续的数据。
3. 使用`histeq`函数进行直方图均衡化:该函数返回一个新的累积分布函数(CDF),然后反向映射到新的像素值范围。
```matlab
cdf = cumsum(histogram);
new_img = imadjust(double(img), [0 cdf(end)], [0 1], []);
```
`imadjust`函数用于调整输入图像的灰度范围,使得输出图像的亮度更加均匀。
4. 显示原图和处理后的图像:通过`figure`和`imshow`命令分别展示原始图像和均衡化的图像。
```matlab
figure;
subplot(1, 2, 1);
imshow(uint8(img)); % uint8用于限制在0-255范围内显示
title('Original Image');
subplot(1, 2, 2);
imshow(uint8(new_img));
title('Histogram Equalized Image');
```
最后,运行以上代码即可看到`cameraman`图像直方图均衡化后的效果。
阅读全文