使用 matlab 编程实现图像的直方图均衡化算法。
时间: 2024-01-21 09:17:46 浏览: 80
好的,下面是使用 Matlab 实现图像直方图均衡化的代码:
```matlab
clc; % 清除命令窗口
clear all; % 清除工作区变量
% 读入图像
img = imread('lena.jpg');
% 转化为灰度图像
img_gray = rgb2gray(img);
% 计算直方图
histogram = imhist(img_gray);
% 计算累积分布函数
cdf = cumsum(histogram) / numel(img_gray);
% 计算映射表
map = uint8(255 * cdf);
% 应用映射表进行直方图均衡化
img_eq = map(img_gray + 1);
% 显示原图和均衡化后的图像
figure;
subplot(121);imshow(img_gray);title('原图');
subplot(122);imshow(img_eq);title('均衡化后');
```
以上代码中,我们首先读入一张彩色图像并将其转化为灰度图像,然后计算灰度图像的直方图及其累积分布函数,再根据累积分布函数计算映射表,并利用映射表对原图像进行均衡化。最后将原图和均衡化后的图像显示出来。
阅读全文