【数字图像处理之二】图像直方图均衡化

原创 2015年07月07日 15:53:49

直方图均衡化的作用是,让图像中比较暗或亮的地方变得清晰。

直方图均衡化步骤:

① 统计图像中0~255各灰度级的个数,记录进一个数组里面。


② 计算各灰度级的个数占总个数的百分比


③ 然后 f(n+1) = f(1)+f(2)+……+f(n)  n ← 1 to n-1


④ 然后所有分数乘以255,下取整

④ ⑤ 最后把原图像的数字替换成计算后的数字。


<span style="white-space:pre">		</span>double Histogram[256];//建立一个直方图数组
		double hs[256];
		double sum=0;
		/**
		 * 图像未经处理的时候
		 */
		memset(Histogram,0,sizeof(Histogram));
		int i,j,k;
		for(j=-1;++j<hImage;){
			for(k=-1;++k<wImage;){
				Histogram[(int)Imagebyte[j][k].R]++;
			}
		}
		/**
		 * 输出直方图
		 */
		ShowProcessing(Histogram,50,100);
		/**
		 * 显示处理前的图像
		 */
		ShowImage(340,0);
		/**
		 * 对直方图进行均衡化
		 */
		i=0;
		hs[i]=Histogram[i]/(hImage*wImage);//第一位算出百分比
		sum+=hs[i];//加第一个百分比
		for(;++i<256;){//from 1 upto 255
			hs[i]=Histogram[i]/(double)(hImage*wImage);//第二位及以后算出百分比
			sum+=hs[i];//从第二位不停地累加
			hs[i]=sum;//将累加值赋给指定位置
		}
		/**
		 * 图像新值 等于 百分比*255
		 */
		for(i=-1;++i<hImage;){
			for(j=-1;++j<wImage;){
				Imagebyte[i][j].R=Imagebyte[i][j].G=Imagebyte[i][j].B=hs[Imagebyte[i][j].R]*255;
				Imagebyte[i][j].RC=Imagebyte[i][j].BC=Imagebyte[i][j].GC=255-Imagebyte[i][j].R;
			}
		}
		/**
		 * 图像经过处理后
		 */
		memset(Histogram,0,sizeof(Histogram));
		for(j=-1;++j<hImage;){
			for(k=-1;++k<wImage;){
				Histogram[(int)Imagebyte[j][k].R]++;
			}
		}
		/**
		 * 输出直方图
		 */
		ShowProcessing(Histogram,50,370);
		/**
		 * 显示处理过后的图像
		 */
		ShowImage(340,hImage);

直方图均衡化前后对比



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

OpenCV数字图像处理四:直方图均衡化 数组示例

步骤总结: 直方图均衡示例 clear all; close all; clc; I=[1 5 255 255 100 200 255 200;     17 254 255 100 10 10...

数字图像处理——直方图均衡化与颜色迁移算法的c++实现

1.直方图均衡化 主要思想: 把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致...

【数字图像处理】[2]--直方图均衡化

【数字图像处理】[2]--直方图均衡化     这一篇讲一下直方图均衡化的简单原理以及mma的实现    先解释一下图像的直方图:统计每个灰度值出现的频数    直方图均衡化...
  • WMN7Q
  • WMN7Q
  • 2016-10-18 21:40
  • 447

数字图像处理之--灰度直方图均衡化

今天是我们上的第二次数字图像处理实验,第一次老师是讲的一些基础知识和matlab的用法,这节课老师讲了直方图的均衡化,详情注释见代码。 有什么问题欢迎交流,我的qq是908642712.请备注信息 ...

【数字图像处理】直方图均衡化详解及编程实现

直方图均衡化的英文名称是Histogram Equalization.   图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最...

python数字图像处理(9):直方图与均衡化

声明:本文转自http://blog.csdn.NET/haoji007/article/category/6337049,但其也为转载,原作者不明,感谢原作者的付出和分享。 在图像...

数字图像处理之直方图均衡化(Octave)

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...

数字图像处理之直方图均衡化

以下例子源自《数字图像处理》第三版 r表示待处理图像的灰度,取值区间[0,L-1]。r=0表示黑色,r= L-1表示白色。输出灰度值s,变换形式: s = T(r) ,0 离散变换形式 sk = T(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)