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);}}}}
}

效果图:

图像增强之直方图均衡化相关推荐

  1. 图像增强及直方图均衡化在图像去雾上的应用(附matlab代码)

    一.图像增强技术介绍 简单进行一个背景介绍:图像增强就是将一幅图中需要的信息增强,消弱或去除不需要的信息的一种处理技术,可以达到改善图像质量的作用. 根据处理空间的不同,可以分为空域增强和频域增强两种 ...

  2. 图像增强之直方图均衡化(不用histeq)与直方图规定化

    前些天数字图像处理课上老师留了一个作业,要求自选一副图像对其做直方图均衡化处理,然后对图像进行灰度变换,使变换后的图像大致具有下图所示归一化直方图的趋势,并绘制直方图. histeq 是MATLAB里 ...

  3. 图像增强—自适应直方图均衡化(AHE)-限制对比度自适应直方图均衡(CLAHE)

    一.自适应直方图均衡化(Adaptive histgram equalization/AHE) 1.简述 自适应直方图均衡化(AHE)用来提升图像的对比度的一种计算机图像处理技术.和普通的直方图均衡算 ...

  4. 彩色图像增强之直方图均衡化

    我们要把下面的图像变得清晰一点: 直接上代码: %% 彩色图像的直方图均衡化 clc; RGB=imread('ceshi.png'); %输入彩色图像,得到三维数组 R=RGB(:,:,1); %分 ...

  5. 深度学习必备---用Keras和直方图均衡化---数据增强

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一.俺.遇到了啥子问题撒~? 我现在写的文章都是因为遇到问题了,然 ...

  6. C/C++ OpenCV直方图均衡化

    扩大图像动态范围 直方图均衡化是灰度变换的一个重要应用,高效且易于实现,广泛用于图像增强中 直方图均衡化是通过拉伸像素强度分布来增强图像对比度的一种方法 实现直方图均衡化: equalizeHist( ...

  7. 【KERAS/直方图均衡化】图像数据集扩充

    原网址: https://blog.csdn.net/sinat_36458870/article/details/78903092 一.我遇到了啥子问题撒~? 我现在写的文章都是因为遇到问题了,然后 ...

  8. 【OpenCV入门指南】第十篇 彩色直方图均衡化

    上一篇<OpenCV第十篇灰度直方图均衡化>介绍了灰度图像的直方图均衡化,实际生活中,肯定还是彩色图像用的最多,因此本篇介绍对彩色图像进行直方图均衡化.这样可以让大家直方图均衡化对图像增强 ...

  9. c++ 绘制函数图像_【图像增强】CLAHE 限制对比度自适应直方图均衡化

    文章来自:微信公众号[机器学习炼丹术]. 文章目录: 1 基本概述 2 竞赛中的CLAHE实现 3 openCV绘制直方图 4 对比度Contrast 5 Contrast Stretching 6 ...

  10. [Python图像处理] 三十八.OpenCV图像增强和图像去雾万字详解(直方图均衡化、局部直方图均衡化、自动色彩均衡化)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

最新文章

  1. 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,天津大学《计算机应用基础》2016年12月考试期末大作业考核试题...
  2. linux csr蓝牙驱动,csr4.0蓝牙适配器驱动下载
  3. [分享]极富挑战性的大公司面试的智力题
  4. android jni ndk 视频分享
  5. 【移植Linux 3.4.2内核第二步】之修改系统分区
  6. 单线程多线程_面试系列 redis为什么快amp;单线程amp;多线程
  7. SQL*Loader 详解
  8. 10本最值得推荐的区块链书
  9. PHP获得指定日期所在月的第一天和最后一天
  10. 如何将符号保存到php数据库当中并且打印出来!
  11. Linux操作系统[下载安装][命令][工具使用]
  12. java中 implement_详解JAVA中implement和extends的区别
  13. OpenGrok简单使用
  14. systemd 中的requires, wants, before, after
  15. IECIE电子烟展——深圳第六届电子烟博览会
  16. 读一部会让你惊叹的作品——《最后一个莫西干人》
  17. java后端面试总结
  18. 计算机网络-网络应用(下)
  19. 入门漏洞:CVE-2022-29464 WSO2文件上传
  20. SD 卡驱动程序分析

热门文章

  1. Windows Server 2008 R2的教程36篇!
  2. 自动装配的几种方式——Spring IOC/DI(四)
  3. gazebo 直接获取传感器数据_如何以最简单的方式获取传感器数据?
  4. html设置导背景宽度,calc()实现满屏背景定宽内容
  5. 华为交换机怎么关闭信息提示_iPhone 关闭支付宝自动扣费服务提示“无法解约”怎么办?...
  6. 合成孔径雷达算法与实现_典型线面目标合成孔径雷达参数化成像
  7. php有没有能无限遍历,php无限遍历目录代码
  8. NO.3 寻找数组主要元素
  9. 视频 |【2019】Power BI 8月产品功能更新讲解
  10. python 启动新进程执行脚本