使用Matlab实现一个基于直方图均衡灰度图像的函数。输入是给定的灰度图像;输出的是强度分布均匀的导出图像。
时间: 2024-03-03 15:50:41 浏览: 65
MATLAB教学视频:空间域图像增强之灰度变换和直方图均衡匹配 课件
好的,以下是一个基于直方图均衡的Matlab函数:
```matlab
function output_img = histeq(input_img)
% input_img: 输入的灰度图像
% output_img: 直方图均衡后的输出图像
% 计算输入图像的灰度直方图
histogram = imhist(input_img);
% 计算累积分布函数
cdf = cumsum(histogram) / numel(input_img);
% 映射像素值
output_img = uint8(255 * cdf(input_img + 1));
end
```
你可以将以上代码保存为一个 `.m` 文件,然后在Matlab中调用该函数来进行直方图均衡处理。使用方法如下:
```matlab
% 读取灰度图像
input_img = imread('your_input_image.png');
% 进行直方图均衡
output_img = histeq(input_img);
% 显示原图和处理后的图像
figure;
subplot(1,2,1);
imshow(input_img);
title('原图');
subplot(1,2,2);
imshow(output_img);
title('直方图均衡后的图像');
```
希望这个函数对你有所帮助!
阅读全文