histogram equalization examples

本文介绍了一种通过直方图均衡化来增强图像对比度的方法。该方法利用累积分布函数(CDF),确保灰度级均匀分布,从而在不改变图像原始内容的基础上提高图像对比度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

reference: 点击打开链接 https://blog.youkuaiyun.com/xiajun07061225/article/details/6910129

example:

original image:



after histogram:


we can see that the contrast of the latter image is higher than that of the original image.


important principles:

1. we need to guarantee that during this process, the transformation T is monotonically increasing.

2. we use the cumulative distribution function(cdf) to make the the gray-level have a uniform distribution to satisfy the first requiement.

### 如何在 MATLAB 中实现直方图均衡化 MATLAB 提供了一种简单而有效的方法来执行图像的直方图均衡化。以下是详细的说明以及代码示例。 #### 使用内置函数 `histeq` 实现直方图均衡化 MATLAB 的 Image Processing Toolbox 提供了一个名为 `histeq` 的内置函数,用于自动完成直方图均衡化操作。该函数可以增强对比度并使图像中的像素分布更均匀[^5]。 ```matlab % 读取灰度图像 I = imread('pout.tif'); % 替换为实际图像路径 figure; imshow(I); title('原始图像'); % 执行直方图均衡化 J = histeq(I); % 显示均衡化后的图像 figure; imshow(J); title('直方图均衡化后的图像'); ``` 上述代码展示了如何加载一张灰度图像,并利用 `histeq` 函数对其进行处理。最终显示的结果将是经过直方图均衡化之后的版本[^5]。 #### 自定义实现直方图均衡化算法 如果希望了解底层原理而不依赖于内置函数,则可以通过手动计算累积分布函数 (CDF) 来实现直方图均衡化: ```matlab function J = custom_histeq(I) % 将输入转换为双精度浮点数以便后续运算 I_double = double(I); % 计算直方图 [counts, bins] = imhist(I); % 创建累计分布函数 CDF cdf = cumsum(counts); cdf_normalized = round(cdf / max(cdf) * 255); % 应用映射到原图像上 height = size(I, 1); width = size(I, 2); J = zeros(height, width, class(I)); for i = 1:height for j = 1:width pixel_value = uint8(I(i,j)+1); J(i,j) = cdf_normalized(pixel_value); end end end % 调用自定义函数 I = imread('pout.tif'); figure; imshow(I); title('Original Image'); J = custom_histeq(I); figure; imshow(uint8(J)); title('Custom Histogram Equalized Image'); ``` 此方法通过构建累加频率表并将每个像素值替换为其对应的累加频率值得到了均衡化的效果[^6]。 #### 结果验证与分析 为了进一步理解效果,还可以绘制原始图像和均衡化后图像的直方图来进行比较: ```matlab figure; subplot(1,2,1), imhist(I), title('原始图像直方图'); subplot(1,2,2), imhist(J), title('均衡化后图像直方图'); ``` 这一步骤有助于观察数据分布的变化情况,从而评估直方图均衡化的性能表现[^7]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值