MATLAB自适应直方图均衡—adapthisteq

今天写调用摄像头处理图像函数,用到了adapthisteq函数,顺便对adapthisteq函数做了一些总结。

adapthisteq:适应直方图均衡化对比度限制器。通过转换强度图像中的值来改变图像的对比度。

histeq:自适应直方图均衡。

与histeq函数不同的是,adapthisteq处理的是图片的小块区域的数据,而不是整个图像对比度增强,使输出区域的直方图大约匹配指定的直方图。相邻的小块用双线性插值把它们混合在一起,以消除人工诱导的边界。对比,尤其是在同质区域,可以限制,以避免放大图像中可能存在的噪声。

G = adapthisteq(I, param1, val1, param2, val2, …)

’NumTiles’:由正整数组成的二元向量[ m, n ]。[ m, n ]为指定小块区域的行列数,M 和 n 都必须至少为2。图像块的总数等于 m * n。 默认值为 [ 8, 8 ]。

’ClipLimit’ :是从0到1的实数标量,用于限制对比度增强。数值越大,对比度越高。默认值为: 0.01。

’NBins’:正整数标量。为构建直方图时使用的直方图设置容器数增强对比度的转换。更高的值结果导致有在更大的动态范围,代价是较慢的处理速度。 默认值: 256。

’Range’:‘original’ 或 ‘full’. 控制输出图像数据的范围。 如果‘ Range’设置为‘ original’ ,则范围限制为[ min (i (:)) max (i (:))]。 否则,默认情况下,或者当‘ Range’设置为‘ full’时,将使用输出图像类的全部范围(e.g. uint8 是 [0 255])。默认值:full。

’Distribution’:‘uniform’, ‘rayleigh’, ‘exponential’。通过指定分布类型,为图像块设置所需的直方图形状。 默认值:uniform。

’Alpha’:是一个分布参数,当“ Dist”为“ rayleigh”或“ exponential”时可以使用这个参数。 默认值:0.4。

扫描二维码关注公众号,回复: 9084894 查看本文章

下面是随手写的一份代码,可以直观的看到adapthisteq的使用方法和使用效果。

I = rgb2gray(imread('tupian.png'));
figure;
imshow(I);

I1 = adapthisteq(I);
figure;
imshow(I1);

I2 = adapthisteq(I,'NumTiles',[50 50]);
figure;
imshow(I2);

I3 = adapthisteq(I,'NumTiles',[50 50],'ClipLimit',0.5);
figure;
imshow(I3);

I4 = adapthisteq(I,'NumTiles',[50 50],'ClipLimit',...
0.5,'NBins',400);
figure;
imshow(I4);

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里注意第一行代码,

I = rgb2gray(imread('tupian.png'));
I = imread('tupian.png');

很多人会忘记做灰度处理导致adapthisteq使用错误。

写文章时间较紧,如有错误,还请指正。

发布了4 篇原创文章 · 获赞 7 · 访问量 2566

猜你喜欢

转载自blog.csdn.net/qq_45504119/article/details/104235772