OpenCV | OpenCV彩色图像直方图算法实现
彩色图像直方图和灰度图像直方图的原理是一样的,不同的是彩色图像需要分别计算BGR三个通道。
import cv2
import numpy as np
import matplotlib.pyplot as pltimg = cv2.imread('Cerasus.JPG', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]count_b = np.zeros(256, np.float)
count_g = np.zeros(256, np.float)
count_r = np.zeros(256, np.float)for i in range(height):for j in range(width):(b, g, r) = img[i, j]index_b = int(b)index_g = int(g)index_r = int(r)count_b[index_b] = count_b[index_b] + 1count_g[index_g] = count_g[index_g] + 1count_r[index_r] = count_r[index_r] + 1# 计算每一个通道的概率
total = height * width
count_b = count_b / total
count_g = count_g / total
count_r = count_r / total# 绘图
x = np.linspace(0, 256, 256)y1 = count_b
plt.figure()
plt.bar( x, y1, 0.9, alpha = 1, color = 'b' )y2 = count_g
plt.figure()
plt.bar( x, y2, 0.9, alpha = 1, color = 'g' )y3 = count_r
plt.figure()
plt.bar( x, y3, 0.9, alpha = 1, color = 'r' )plt.show()cv2.waitKey(0)
三个通道直方图如下:
OpenCV | OpenCV彩色图像直方图算法实现相关推荐
- opencv笔记(6):彩色图像直方图
生活就像大海,我就像一条咸鱼,在浩瀚的海洋中边浪边学,这是opencv笔记系列中的「彩色图像直方图」.更多可参观[浪学]公众号~ 颜色直方图是在许多图像检索系统中被广泛采用的颜色特征.它所描述的是不同 ...
- Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCV实现图像的直方图算法增强(C++)
Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCV实现图像的直方图算法增强(C++) Baumer工业相机 Baumer工业相机使用图像算法增加图像的技术背景 Baumer工业相机 ...
- 使用Python,OpenCV计算图像直方图(cv2.calcHist)
使用Python,OpenCV计算图像直方图(cv2.calcHist 1. 效果图 2. 原理 2.1 什么是图像直方图? 2.2 计算直方图 2.3 可视化蒙版区域 3. 源码 参考 这篇博客将介 ...
- 目标跟踪之粒子滤波---Opencv实现粒子滤波算法
目标跟踪学习笔记_2(particle filter初探1) 目标跟踪学习笔记_3(particle filter初探2) 前面2篇博客已经提到当粒子数增加时会内存报错,后面又仔细查了下程序,是代码方 ...
- 【opencv】20.直方图均衡化的数学原理
本文只讲数字图像处理,即离散化后的公式,至于积分形式的分析,网上很多. 具体的数学推导可以参考这篇博客直方图均衡化. 如果想自己代码实现直方图均衡化,相关源代码可以参考(不使用api)使用C++实现彩 ...
- 【CV春季划】170分钟学习OpenCV与经典图像处理算法基础
本次给大家带来的是有三AI-CV春季划组OpenCV与经典图像处理算法的直播回放,如果你还不知道有三AI-CV春季划是什么,可以看下面的视频和图文. 点击边框调出视频工具条 [CV春季划]言有三手把手 ...
- opencv python 直方图反向投影_python OpenCV学习笔记直方图反向投影的实现
本文介绍了python OpenCV学习笔记直方图反向投影的实现,分享给大家,具体如下: 它用于图像分割或寻找图像中感兴趣的对象.简单地说,它创建一个与我们的输入图像相同大小(但单通道)的图像,其中每 ...
- opencv 绘制图像直方图,实现直方图均衡化
直方图 直方图简单来说就是图像中每个像素值的个数统计,比如说一副灰度图中像素值为0的有多少个,1的有多少个--直方图是一种分析图像的手段: 直方图计算 opencv库计算直方图 使用 cv.calcH ...
- opencv中人脸识别算法的基本原理
opencv中人脸识别算法的基本原理(一) 使用opencv中自带的三种人脸识别算法进行实验后,特意去了解学习了一下其基本原理,在这里记录下. opencv人脸识别 关于如何使用opencv实现人脸识 ...
最新文章
- 学习linux要会mysql吗_linux 学习 mysql安装到连接
- 安装MySQLdb for Python3.7
- 1-jQuery - AJAX load() 方法【基础篇】
- Centos 7.4 安装ipython和mysql-python遇到的问题
- [ARM-assembly]-ARM交叉编译器下编译的各个镜像的反汇编文件分析
- 只需0行代码 | 文科生也能画词云图!
- CodeForces - 965E Short Code (字典树上贪心)
- eclipse Plugin execution not covered by lifecycle configuration:maven.***.plugin
- assert 的理解
- html当前行突出显示,Pandas Dataframes to_html:突出显示表行
- win10计算机变成了英文,win10变成英文【处理方法】
- Pytorch 分布式训练
- 上市公司商誉减值损失数据(2007-2020年)
- matlab编写的程序输入参数怎么写,MATLAB|标准参数输入对话框创建
- [发布] QQGame 连连看辅助工具(限制功能版)
- 【苹果相册推送位置推送iMessage】软件安装TestFlight计划的信息
- 【Multisim仿真】运放电路:反相比例运算电路
- 递归算法中的时间复杂度分析
- dedecms后台报错“Notice: Use of undefined constant MYSQL_ASSOC - assumed ‘MYSQL_ASSOC‘ ”的解决方法
- cached in the local repository, resolution will not be reattempted until the update interval of RIIL