图像直方图

  • 图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。是图像的统计学特征。

直方图均衡化:

  • 是一种提高图像对比度的方法,拉伸图像灰度值范围。让图像更均衡。对于图像的特征提取是非常有用的
  • 通过remap我们知道可以将图像灰度分布从一个分布映射到另外一个分布,然后在得到映射后的像素值即可。
  • 提升对比度:就是图像中所有的像素值之间的差异都比较明显
    • 均衡意味着将一个分布(给定的直方图)映射到另一个分布(更宽和更均匀的强度值分布),因此强度值在整个范围内扩展。
    • 要实现均衡效果,重映射应该是累积分布函数(cdf)。 对于直方图H(i),其累积分布H’(i)是:
    • 要将其用作重新映射函数,我们必须对H’(i)进行归一化,使得最大值为255(或图像强度的最大值)。 从上面的例子中,累积函数是:
    • 最后,我们使用简单的重新映射程序来获得均衡图像的强度值:

API说明cv::equalizeHist

equalizeHist(
InputArray src,//输入图像,必须是8-bit的单通道图像
OutputArray dst// 输出结果
)

程序代码

#include<opencv2/opencv.hpp>
#include<iostream>using namespace std;
using namespace cv;int main(int argc, char** argv)
{Mat src, dst;//1. 读取图像src = imread("E:/Experiment/OpenCV/Pictures/dog2.jpg");if( src.empty() ){ cout<<"Usage: ./Histogram_Demo <path_to_image>"<<endl;return -1;}// 2. 将其转换为灰度:cvtColor( src, src, COLOR_BGR2GRAY );// 3. 使用函数cv :: equalizeHist应用直方图均衡equalizeHist( src, dst );// 4. 显示两个图像(原始图像和均衡图像):imshow( "Source image", src );imshow( "Equalized Image", dst );waitKey(0);return 0;
}

运行截图

参考博客:

  1. https://blog.csdn.net/LYKymy/article/details/83188995
  2. https://blog.csdn.net/huanghuangjin/article/details/81171721

OpenCV-图像处理(23、直方图均衡化)相关推荐

  1. 数字图像处理100问—23 直方图均衡化( Histogram Equalization )

    提示:内容整理自:https://github.com/gzr2017/ImageProcessing100Wen CV小白从0开始学数字图像处理 23 直方图均衡化( Histogram Equal ...

  2. OpenCV-数字图像处理之直方图均衡化

    OpenCV-数字图像处理之直方图均衡化 从这篇博文开始,小生正式从一个毫不相干专业转投数字图像处理.废话不多说了,talk is cheap. show me the code. 直方图均衡化目的 ...

  3. Java OpenCV 图像处理23.0 图像轮廓

    Java OpenCV 图像处理23.0 图像轮廓 Java OpenCV-4.0.0 图像轮廓 输入图像转为灰度图像cvtColor 使用Canny进行边缘提取,得到二值图像 使用findConto ...

  4. c++ opencv 图像处理:直方图处理(直方图均衡化,直方图匹配(规定化))

    文章目录 前言 一.直方图(histogram) 二.直方图处理 1.直方图均衡化 2.直方图匹配(规定化) 三.opencv函数总结 1.equalizeHist图像均衡化 2.calcHist获取 ...

  5. 【opencv】20.直方图均衡化的数学原理

    本文只讲数字图像处理,即离散化后的公式,至于积分形式的分析,网上很多. 具体的数学推导可以参考这篇博客直方图均衡化. 如果想自己代码实现直方图均衡化,相关源代码可以参考(不使用api)使用C++实现彩 ...

  6. 【图像处理】直方图均衡化(附带Matlab及OpenCV3自编程实现代码)

    [fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 前言 直方图均衡化是最基础的图像处理方法之一,也是本人接触图像处理时最先接触到的算法.算法很 ...

  7. opencv曝光过度_直方图均衡化

    直方图均衡化 想象一下,如果一副图像中的大多是像素点的像素值都集中在一个像素值范围之内会怎样呢?例如,如果一幅图片整体很亮,那所有的像素值应该都会很高.但是一副高质量的图像的像素值分布应该很广泛.所以 ...

  8. OpenCV 自适应的直方图均衡化

    自适应的直方图均衡化 整幅图像会被分成很多小块,这些小块被称为"tiles".然后再对每一个小块分别进行直方图均衡化.如果有噪声的话,噪声会被放大.为了避免这种情况的出现要使用对比 ...

  9. 【图像处理】直方图均衡化

    直方图均衡化是图像处理领域中利用图像直方图增强图像对比度的一种方法. 如果一副图像的像素占有很多的灰度级而且分布均匀,那么这样的图像往往有高对比度和多变的灰度色调."直方图均衡化" ...

  10. Opencv——灰度变换、直方图均衡化

    1.代码如下: #include "stdafx.h" #include <opencv2/opencv.hpp>using namespace cv;int main ...

最新文章

  1. 京东方剑指物联网领域
  2. angularjs php上传文件,AngularJS 文件上传 的功能你了解的多少?几分钟就让你了解angularjs的文件上传...
  3. mysql 原生 添加数据_手撸Mysql原生语句--增删改查
  4. 怎样写一篇优秀论文?看完受益匪浅!
  5. 使用LIstView和自定义Adapter完成列表信息显示
  6. C#3.0学习(2)---对象集合初始化器
  7. java 计算8+88+888+......前12项之和
  8. 22HTML5期末大作业:电影网站设计——电影我不是药神响应式页播(4页) HTML+CSS+JavaScript 大学生电影网页作品 影视网页设计作业模板 学生网页制作源代码下载
  9. 效率软件:微软远程桌面安卓版
  10. php实现两张图片合成一张,如何把两张图片拼成一张
  11. 3306π金牌讲师,甜橙金融(翼支付)高级总监张小虎专访
  12. 关键字深度剖析,集齐所有关键字可召唤神龙?【三】
  13. 自建idea授权服务器
  14. 怎么降低软件开发成本风险_降低开发人员成本的5种方法
  15. 序列(SEQUENCE)、同义词(SYNONYM)
  16. 计算机二级access上机,计算机二级Access上机考点
  17. 魔都上海财务自由需要多少万?
  18. Day 13 JUSTICE
  19. React部署到 Tomcat上 使用 BrowserRouter不能刷新404的问题
  20. 基本sctp套接字编程及实例讲解

热门文章

  1. HDU 2686 MCMF
  2. docker~学习笔记索引
  3. linux下tab作用的描述?
  4. 一个cp命令引发的mongodb大量慢查询
  5. 关于ubuntu下无线网卡经常连不上网络的问题
  6. 下周开始读《Principles of Program Analysis》
  7. AndroidStudio编译引入JsonObject
  8. tomcat与java的版本_Tomcat JVM版本与JAVA_HOME不同
  9. hexo添加_hexo 如何给文章添加目录
  10. visual studio怎么用_自从用了敏捷,天天在开会?4大Scrum会议如何才能有意义?...