生活就像大海,我就像一条咸鱼,在浩瀚的海洋中边浪边学,这是opencv笔记系列中的「彩色图像直方图」。更多可参观[浪学]公众号~

颜色直方图是在许多图像检索系统中被广泛采用的颜色特征。它所描述的是不同色彩在整幅图像中所占的比例。

世间万图,皆有直方图。如何使用opencv来显示彩色图像直方图呢?这一篇文章以很咸鱼的方式把它们记录下来。

原图还是那一个它:

编写一个函数,根据图像得到各个颜色通道的直方图代码

def ImageHist(image, type):color = (255,255,255)windowName = 'Gray'if type==31:color = (255,0,0)windowName = 'B Hist'elif type==32:color = (0,255,0)windowName = 'G Hist'elif type==33:color = (0,0,255)windowName = 'R Hist'#hist = cv2.calcHist([image],[0],None,[256],[0.0,255.0])minV,maxV,minL,maxL = cv2.minMaxLoc(hist)histImg = np.zeros([256,256,3],np.uint8)for h in range(256):intenNormal = int(hist[h]*256/maxV)cv2.line(histImg,(h,256),(h,256-intenNormal),color)cv2.imshow(windowName, histImg)return histImg
复制代码

读取图像显示直方图

img = cv2.imread('image.png',1)
channels = cv2.split(img) # B G R
for i in range(3):ImageHist(channels[i],31+i)
cv2.waitKey(0)
复制代码

输出直方图如下

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

opencv笔记(6):彩色图像直方图相关推荐

  1. OpenCV笔记整理【直方图和掩模】

    1. 直方图: 直方图统计图像中各个灰度级出现的次数,横坐标为各个像素点的灰度级,纵坐标是具有该灰度级的像素个数. 上面这个九宫格我们可以想象成一张图像,里面的数字代表当前像素的灰度等级. 用图表显示 ...

  2. opencv学习笔记21:直方图和掩膜 原理及其应用

    直方图概念 如图:下面黑色图为上面图的直方图 横坐标:图像中各个像素点的灰度级 纵坐标:具有该灰度级的像素个数. 归一化直方图 横坐标:图像中各个像素点的灰度级 纵坐标:出现该灰度级的概率. DIMS ...

  3. opencv进阶学习笔记7:直方图,直方图均衡化,直方图比较,直方图反向投影

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 直方图基础讲解: opencv学 ...

  4. OpenCV | OpenCV彩色图像直方图算法实现

    彩色图像直方图和灰度图像直方图的原理是一样的,不同的是彩色图像需要分别计算BGR三个通道. Cerasus.JPG import cv2 import numpy as np import matpl ...

  5. opencv:灰色和彩色图像的像素直方图及直方图均值化的实现与展示

    直方图及直方图均值化的理论,实现及展示 直方图: 首先,我们来看看什么是直方图: 理论概念: 在图像处理中,经常用到直方图,如颜色直方图.灰度直方图等. 图像的灰度直方图就描述了图像中灰度分布情况,能 ...

  6. Opencv 笔记5 边缘处理-canny、sobel、Laplacian、Prewitt

    一.边缘检测概述 边缘检测是计算视觉中的基本问题,边缘检测的目的是标识图像中亮度变换明显的点.边缘检测大幅度的减少了图像的数据量(分为两种:灰度图像边缘检测和彩色图像边缘检测),并且剔除了不相关的信息 ...

  7. OpenCV笔记-图像预处理1

    OpenCV笔记 一. 图像预处理 1. 图像显示与存储 1.1 颜色空间 颜色空间(RGB) 加法混色 三通道:RGB 一个像素的颜色值:(b,g,r) 取值范围:[0,255] or [0.0,1 ...

  8. 使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析

    使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析 1. 效果图 2. 原理 3. 源码 3.1 直方图3种计算方法和2种绘制方法 3.2 Mask遮罩图像直方图 参考 这篇博客将 ...

  9. 使用Python,Opencv进行二维直方图的计算及绘制

    使用Python,Opencv进行二维直方图的计算及绘制 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Python,Opencv进行二维直方图的计算及绘制(分别用Opencv和Numpy计算 ...

最新文章

  1. 【VS实践】如何在vs中自动添加注释
  2. ionic overflow:auto失效
  3. leetcode 617. Merge Two Binary Trees | 617. 合并二叉树(Java)
  4. 如何在同一台计算机上安装多个Java版本
  5. 张平文院士:展示计算数学的魅力
  6. Spring Boot集成Redis,这个坑把我害惨了!
  7. 系统缓存全解析 [转]
  8. 最新版 Enterprise Library 企业库 V4.1 中文学习手册
  9. html5 input min,HTML Input Time min用法及代码示例
  10. 静默错误:Oracle 数据库是如何应对和处理的 ?
  11. 华为云服务器入门初体验
  12. BAT监视360进程.txt
  13. JavaWeb出现404一个很隐蔽的原因
  14. live2d_原画人插画教程,想知道live2d虚拟主播是怎么制作出来的吗?
  15. 2021 美国硅谷程序员调查:平均年薪 80 万,后端人才“吃香”
  16. 分享几个做CTF的网站
  17. 至简设计系列_7段数码管显示
  18. VUCA时代,3招让项目计划管理更科学有序!
  19. 前端背景图放置_web前端入门到实战:css 中的背景图片小技巧和存在的坑
  20. oracle导出数据库dmp文件

热门文章

  1. python给内置函数重命名_python – 以Pandas Groupby函数重命名列名
  2. (5)DFS(深度优先搜索算法):排列数字
  3. android java框架_【阿里P8大牛教你Android入门之路(java篇)】——Java集合框架(系列篇1)...
  4. 从下列选项中选择正确的java表达式,java笔试常见的选择题
  5. oracle数据库内容替换,国产数据库能否替换oracle数据库?
  6. 电大计算机基础知识机考题,电大《计算机应用基础》网考机考单选题大汇总
  7. 字符串转小写 c语言库函数,c++字符串大小写转换
  8. Spring Security 用户登录实战
  9. Spring Security Oauth2 (三) 密码码模式
  10. java 泛型 通配符边界和类型形参边界的区别