MATLAB中`histeq`的原理以及自写的具体实现函数 📊💡
2025-04-03 00:29:14
•
来源:
导读 提到图像处理,不得不提直方图均衡化(Histogram Equalization)。在MATLAB中,`histeq`是实现这一功能的经典函数,它通过拉伸像素值分布...
提到图像处理,不得不提直方图均衡化(Histogram Equalization)。在MATLAB中,`histeq`是实现这一功能的经典函数,它通过拉伸像素值分布来增强对比度。简单来说,就是将原始图像的灰度分布调整为均匀分布,从而让图像细节更清晰。
原理其实并不复杂:首先计算图像的灰度直方图,然后对累积分布函数(CDF)进行归一化,最后将每个像素映射到新的灰度值上。这种方法特别适合用于增强低对比度图像。
那么问题来了,如果想自己动手实现呢?以下是一个简单的MATLAB代码示例👇:
```matlab
function result = my_histeq(img)
% 计算直方图
hist = imhist(img);
cdf = cumsum(hist) / numel(img); % 归一化累积分布函数
% 映射灰度值
result = uint8(cdf(img + 1) 255);
end
```
这段代码虽然简短,但完美复刻了`histeq`的核心逻辑。试着用一张昏暗的照片试试吧!✨
版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。
关键词: