生活就像大海,我就像一条咸鱼,在浩瀚的海洋中边浪边学,这是opencv笔记系列中的「直方图均衡化」。

世间万图,皆可均衡化。小编边浪边学,顺带以很咸鱼的方式把它们记录下来。

直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。它的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围从而可达到增强图像整体对比度的效果。

1)对单通道图像进行均衡化

输入原图像并且显示

import cv2
import numpy as npimg = cv2.imread('test1.jpg',1)
cv2.imshow('src',img)
cv2.waitKey(0)
复制代码

原图换成了一个妹纸o_o

转换成单通道灰度图像

gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
cv2.imshow('gray',gray)
cv2.waitKey(0)
复制代码

然后对灰度图像进行均衡化

dst = cv2.equalizeHist(gray)
cv2.imshow('dst',dst)
cv2.waitKey(0)
复制代码

貌似看得出来输出图像比原本好看了

2)对多通道图像进行均衡化

导入图像后,对每个通道进行均衡化,然后把三个通道合并

# 2
b,g,r = cv2.split(img)
bH = cv2.equalizeHist(b)
gH = cv2.equalizeHist(g)
rH = cv2.equalizeHist(r)
dst = cv2.merge((bH,gH,rH))
cv2.imshow('dst',dst)
cv2.waitKey(0)
复制代码

均衡化前后图像的对比

3)对YUV图像进行均衡化

导入图像后,把图像转换成YUV格式

# 3
imgYUV = cv2.cvtColor(img, cv2.COLOR_RGB2YCrCb)
cv2.imshow('imgYUV',imgYUV)
cv2.waitKey(0)
复制代码

输出YUV格式图像如下

然后均衡化操作

channelYUV = cv2.split(imgYUV)
channelYUV[0] = cv2.equalizeHist(channelYUV[0])
channels = cv2.merge(channelYUV)
dst = cv2.cvtColor(channels, cv2.COLOR_YCrCb2RGB)
cv2.imshow('dst',dst)
cv2.waitKey(0)
复制代码

图片显示如下

笑看风起云落啊。

更多欢迎来我的公众号一起学习~

opencv笔记(7):直方图均衡化相关推荐

  1. python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化

    本文介绍了python OpenCV学习笔记之直方图均衡化,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/d5/daf/tutorial_py_hi ...

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

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

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

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

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

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

  5. python opencv 直方图均衡_Python+OpenCV:全局直方图均衡化、局部直方图自适应均衡化、直方图比较(Python版)...

    1. 全局直方图均衡化 cv2.equalizeHist(src, dst=None)函数只能处理单通道的数据,src为输入图像对象矩阵,必须为单通道的uint8类型的矩阵数据.直方图均衡化可以看作是 ...

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

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

  7. opencv查找表值直方图均衡化

    原文:http://lib.csdn.net/article/opencv/28586 #include <opencv2/opencv.hpp> using namespace cv; ...

  8. OpenCV学习笔记(九)之直方图均衡化(图像增强)

    图像直方图 1.图像直方图介绍   图像直方图(Image Histogram)是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数.可以借助观察该直方图了解需要如何调整亮度分布.这种 ...

  9. 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图

    本文链接:https://blog.csdn.net/xiaowei_cqu/article/details/7606607                                       ...

  10. OpenCv:直方图均衡化(HE),自适应直方图均衡化(AHE),限制对比度自适应直方图均衡化(CLAHE)

    总结了使用Python OpenCv处理图像直方图均衡化(HE),自适应直方图均衡化(AHE),限制对比度自适应直方图均衡化(CLAHE)的方法. 目录 直方图均衡化(HE) 自适应直方图均衡化(AH ...

最新文章

  1. 并行处理的类型与CPU/GPU架构
  2. mac nginx php7 配置,mac os下配置nginx+php7.1+fastcgi
  3. saltstack实战2--远程执行之模块(Modules)
  4. 腾讯微博开放平台API相关经验--部署到服务器返回值为乱码问题
  5. html求相关系数,相关系数,确定系数(R^2)计算公式与在线计算器_三贝计算网_23bei.com...
  6. 裁员潮来袭,如何度过这两年“艰苦岁月”
  7. bzoj 3772 :精神污染 线段树+打标记 or 主席树
  8. dw自动滚动图片_DW图片无缝滚动代码
  9. Linux下的按键精灵xdotool
  10. matlabGUI神经网络系统设计
  11. boost yield fock介绍
  12. #96 百度大规模网络流量接入技术 BFE 开源
  13. Mac自动隐藏/显示程序坞有时延解决办法
  14. mixamo动画批量添加根骨骼与将动作处理成原地动作(blender)
  15. 知识图谱第5享:公安五要素简介
  16. 微信养号服务器,微信30天养号技巧(附养号操作图)
  17. JAVA计算机毕业设计餐饮掌上设备点餐系统Mybatis+系统+数据库+调试部署
  18. swift 顶部提示图_古老的蜡烛图分析法-酒田战法的五种经典法则
  19. 一个理科直男如何看《鱿鱼游戏》
  20. 外挂,一个因“快感”而崛起的暴利行业

热门文章

  1. 从零实现深度学习框架——计算图运算补充
  2. 《linux核心应用命令速查》连载一:accton:打开或关闭进程统计
  3. 每个人心中都有一片极乐净土
  4. 21天学通JAVA:如何使用现有类
  5. 02函数极限存在条件
  6. 在pycharm运行正常,在命令行窗口出现引包错误
  7. PHP字体向右移动,CSS3如何实现文字向右循环闪过效果以及可在移动端使用的实例代码分享...
  8. sql怎么注销当前登录状态_4种方法教你获取Oracle数据库当前会话/进程的session id...
  9. 含蓄:为彼此的交往留下余地 — 《别输在不会表达上》
  10. Flutter功能 中ListView和GridView嵌套报错?【教你一步搞定】