通过直方图均衡化提升图像的对比度,画出对应的灰度映射函数matlab代码
时间: 2023-11-24 20:06:43 浏览: 81
matlabdaima.zip_提高对比度_直方图均衡化
以下是使用MATLAB实现直方图均衡化的代码:
```matlab
% 读取图像
img = imread('lena.png');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 计算灰度直方图
histogram = imhist(gray_img);
% 计算累计分布函数
cdf = cumsum(histogram) / numel(gray_img);
% 计算灰度映射函数
gray_map = uint8(255 * cdf);
% 对图像进行直方图均衡化
equalized_img = gray_map(gray_img + 1);
% 显示原始图像和直方图均衡化后的图像
subplot(1,2,1);
imshow(gray_img);
title('Original Image');
subplot(1,2,2);
imshow(equalized_img);
title('Equalized Image');
% 显示灰度映射函数
figure;
plot(gray_map);
title('Gray Level Mapping Function');
```
在上面的代码中,我们首先读取图像并将其转换为灰度图像。然后,我们计算灰度直方图并计算累计分布函数。接下来,我们计算灰度映射函数,并使用该函数对图像进行直方图均衡化。最后,我们显示原始图像和直方图均衡化后的图像,并显示灰度映射函数。
阅读全文