C语言数字图像处理---1.4直方图拉伸和直方图均衡化

        本篇将延续上一篇的内容,对直方图进行扩展,讲述直方图拉伸和直方图均衡化两个内容,并通过简单的C语言来实现这两个基础功能,让初学者通俗易懂。

直方图拉伸

[定义与算法]

        直方图拉伸也叫做灰度拉伸或者对比度拉伸,就是将一副图像的直方图填满整个灰度等级范围,即0-255之间。可能新手会不太理解,如下图Fig.1所示,左边为原图的灰度直方图,可以看到,像素大多数集种在0-128范围内,根据上一小节我们所学的知识,这张图应该表现为颜色比较暗的效果。直方图拉伸之后,效果如右边图(b)所示,像素分布填充到了0-255之间的灰度级,根据上一小节内容,我们可以猜想,这张图进行直方图拉伸后,明显变亮了。

        如何进行直方图拉伸?我们以一个颜色通道,比如灰度通道为例,直方图拉伸的算法如下: 

        1.假设原图S内任意一点像素P(i,j),对原图S计算灰度通道中的最小灰度级mingray和最大灰度级maxgray,公式如下:

                                                                        

猜你喜欢

转载自blog.csdn.net/Trent1985/article/details/103953909