直方图均衡化与matble代码实现术之多
时间: 2023-08-02 22:08:26 浏览: 103
直方图均衡化及matlab实现
直方图均衡化是一种图像增强技术,它可以将图像的灰度值拉伸到整个灰度级范围内,从而提高图像的对比度和细节。下面是用Matlab实现直方图均衡化的步骤:
1. 读入图像并转化为灰度图像
```
img = imread('lena.jpg');
gray_img = rgb2gray(img);
```
2. 计算灰度直方图
```
[h, x] = imhist(gray_img);
```
3. 计算累积分布函数CDF
```
cdf = cumsum(h) / numel(gray_img);
```
4. 将CDF映射到0~255的灰度级范围内
```
map = uint8(255 * cdf);
```
5. 应用映射函数,得到均衡化后的图像
```
eq_img = map(gray_img + 1);
```
6. 显示原图和均衡化后的图像
```
subplot(1,2,1)
imshow(gray_img)
title('Original Image')
subplot(1,2,2)
imshow(eq_img)
title('Equalized Image')
```
以上就是用Matlab实现直方图均衡化的步骤。
阅读全文