首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

基于opencv跟c++的图像处理:直方图均衡化

2012-11-06 
基于opencv和c++的图像处理:直方图均衡化一般而言,图片有RGB三通道,每个通道用一个byte表示,取范围在0到25

基于opencv和c++的图像处理:直方图均衡化

       一般而言,图片有RGB三通道,每个通道用一个byte表示,取值范围在0到255之间。对于每个通道,我们都可以计算图像的直方图,其实就是统计每个像素值的出现频率,如下图所示:

基于opencv跟c++的图像处理:直方图均衡化


       直方图均衡化的效果,即把原图的三通道的直方图变成均匀分布,每种像素值出现的次数都差不多,下面是直方图均衡化后的效果(直方图是用光影查看的,生成效果图的代码见后):

        基于opencv跟c++的图像处理:直方图均衡化


可以看到,图片的直方图很均匀。

直方图均衡化的代码:

string strImagePath = "lena.jpg";GFImage image1(strImagePath);image1.ShowImage("ori");image1.HistogramEqualization();image1.ShowImage("res");cv::waitKey();  

其中GFImage封装了opencv的图像类,GFHistogram是自定义的直方图类。详细代码可参考这里


热点排行