为什么matlab图像均衡化后直方图还有锯齿?

如题所述

还是需要从连续信号的角度理解,均衡化一次后连续信号已经是均匀分布的了,均匀分布再做均衡化还是本身.

在离散的数字图像应用上,多次进行直方图均衡化的结果其实和只进行一次直方图均衡化的直方图分布还是有点不一样的(imhist),由于连续概率密度函数退化成离散的概率分布,离散化计算过程中四舍五入或截断会造成精度损失;即便入池,一般我们认为直方图多次与直方图一次效果差不多,只要进行一次直方图均衡化即可.

***

matlab 测试代码:


clear;

I = imread('1.png');
gray = rgb2gray(I);
gray1 = histeq(gray);
gray2 = histeq(gray1);
gray3 = histeq(gray2);


figure()
subplot(2,1,1);
[count, x] = imhist( gray );
plot(x,count);
xlim([0,255]);
title('原始灰度图像的直方图');

subplot(2,1,2);
[count1, x1] = imhist( gray1 );
plot(x1,count1);
hold on;
[count2, x2] = imhist( gray2 );
plot(x2,count2);
[count3, x3] = imhist( gray3 );
plot(x3,count3);
xlim([0,255]);
legend({'1次histeq','2次histeq','3次histeq'});

sumsqr(count1-count2)
sumsqr(count2-count3)

***

用例图片:

1.png


MATLAB输出图像:

含有两个子图的MATLAB Figure


看MATLAB输出图像的子图二,放大细节,可以看到,直方图分布并不是完全一样的(灰度级为4的地方,随着histeq次数不一样,4出现的次数是不相同的 ).

温馨提示:答案为网友推荐,仅供参考
相似回答