图像增强之直方图均衡化
来源:互联网 发布:淘宝详情页图片排版 编辑:程序博客网 时间:2024/05/21 07:04
1、直方图均衡化
void cvEqualizeHist( const CvArr* src, CvArr* dst );
用来使灰度图象直方图均衡化,可以将比较淡的图像变换为比较深的图像(即增强图像的亮度及对比度)。
2、灰度拉伸
由于光线原因会造成图像局部过亮或过暗,需要对图像进行拉伸使之覆盖较大的取值区间。使亮的区域更亮,暗的区域更暗,提高图像的对比度,从而使图像边缘明显。灰度拉伸是将灰度图像进行分段性变化,即若原图像f(x,y)的灰度变化区间为[a,b],变换后图像g(x,y)的灰度范围扩展到区间[c,d],可采用下列线性变换来实现:
代码入下:(传入的参数必须是单通道的图像)
void Ctry::stretch(IplImage* src, IplImage* dst){int low_value; //拉伸后像素的最小值 int high_value; //拉伸后像素的最大值 float rate = 0; //图像的拉伸率 float stretch_p[256], stretch_p1[256], stretch_num[256];//清空三个数组,初始化填充数组元素为0 memset(stretch_p, 0, sizeof(stretch_p));memset(stretch_p1, 0, sizeof(stretch_p1));memset(stretch_num, 0, sizeof(stretch_num));int nHeight = src->height;int nWidth = src->width;int i, j;for (i = 0; i<nHeight; i++){for (j = 0; j<nWidth; j++){double pixel0 = cvGetReal2D(src, i, j);int pixel =(int) pixel0;stretch_num[pixel]++;}}//统计各个灰度级出现的概率for (i = 0; i<256; i++){stretch_p[i] = stretch_num[i] / (nHeight*nWidth);}//统计各个灰度级的概率for (i = 0; i<256; i++){for (j = 0; j <= i; j++){stretch_p1[i] += stretch_p[j];}}//计算两个阈值点的值 for (i = 0; i<256; i++){if (stretch_p1[i]<0.1) //low_value取值接近于10%的总像素的灰度值 {low_value = i;}if (stretch_p1[i]>0.9) //high_value取值接近于90%的总像素的灰度值 {high_value = i;break;}}rate = (float)255 / (high_value - low_value + 1);//进行灰度拉伸 for (i = 0; i<nHeight; i++){for (j = 0; j<nWidth; j++){int pixel = cvGetReal2D(src, i, j);if (pixel<low_value){cvSetReal2D(dst, i, j, 0);}else if (pixel>high_value){cvSetReal2D(dst, i, j,255);}else{double temp = (pixel - low_value)*rate + 0.5;cvSetReal2D(dst, i, j, temp);if (temp>255){cvSetReal2D(dst , i, j, 255);}}}}}
效果图:
0 0
- 图像增强之直方图均衡化
- 图像增强之直方图均衡化
- 图像增强之(一)---直方图均衡化
- 图像增强之02直方图均衡化
- 图像增强-直方图均衡化
- 直方图均衡化,图像增强
- 图像增强方法之 直方图均衡化 (的原理)
- 图像指数、对数增强、直方图均衡化
- [图像增强]二. 直方图均衡化
- 图像指数、对数增强、直方图均衡化
- 直方图均衡化—图像增强
- 【EMGUCV】图像的直方图均衡化增强
- OpenCV图像增强:直方图拉伸和直方图均衡化
- 灰度图像--图像增强 直方图均衡化(Histogram equalization)
- 数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)
- 图像增强算法之 限制对比度自适应直方图均衡化算法原理
- 图像增强算法之 限制对比度自适应直方图均衡化算法原理
- 图像增强去雾之直方图均衡化/同态滤波/Retinex算法
- ubuntu下安装ftp服务器
- 程序员挑战高薪,你必须会的十大面试题
- stat
- 自学Swift-斯坦福笔记整理(十三) Application Lifecycle and Core Motion
- WebAPI通过multipart/form-data方式接收文件时由开发自行决定如何保存文件
- 图像增强之直方图均衡化
- C#实现RSA加密与解密、签名与认证
- github使用
- 查询自己的ip和城市接口
- 达内学习日志Day16:Java核心API(字符串基本操作)
- Java入门必知内容
- (模板)FFT
- weblogic重置密码
- junit测试出现的小问题解决方案