matlab实现直方图均衡化imhist
时间: 2024-09-09 11:09:55 浏览: 68
在MATLAB中,直方图均衡化是一种改善图像对比度的技术,它通过拉伸图像的直方图来利用全部可能的动态范围。这通常用于增加图像的全局对比度,尤其是在图像的背景和前景都很暗或者都很亮的情况下。`imhist`函数用于显示图像的直方图。
要使用MATLAB实现直方图均衡化,可以使用`histeq`函数。以下是一个简单的步骤说明:
1. 读取图像。
2. 使用`histeq`函数对图像进行直方图均衡化。
3. 使用`imhist`函数显示原始图像和均衡化后的图像的直方图进行对比。
这里是一个示例代码:
```matlab
% 读取图像
I = imread('example.jpg');
% 显示原始图像的直方图
figure; subplot(2,2,1); imhist(I); title('原始图像的直方图');
% 对图像进行直方图均衡化
I_eq = histeq(I);
% 显示均衡化后的图像
subplot(2,2,2); imshow(I_eq); title('均衡化后的图像');
% 显示均衡化后图像的直方图
subplot(2,2,3); imhist(I_eq); title('均衡化后图像的直方图');
% 比较原始和均衡化后的直方图
subplot(2,2,4); imhist(I); hold on; imhist(I_eq, 64, [0, 255]); hold off; title('原始和均衡化后的直方图比较');
```
在上面的代码中,我们首先读取了一个图像文件`example.jpg`,然后显示了它的直方图。之后,我们对图像进行了直方图均衡化,并显示了均衡化后的图像和它的直方图。最后,我们创建了一个图表来直观比较原始图像和均衡化后图像的直方图。
阅读全文