Opencv实现二维直方图的计算及绘制
作者:程序媛一枚~ 时间:2023-07-18 23:34:52
这篇博客将介绍如何使用Python,Opencv进行二维直方图的计算及绘制(分别用Opencv和Numpy计算),二维直方图可以让我们对不同的像素密度有更好的了解。
1. 效果图
原始图如下:
1维直方图如下:
2维直方图如下:
X轴显示S值,Y轴显示色调。
hsvmap效果图如下:
2. 源码
# OpenCV中的二维直方图:使用相同的函数cv2.calcHist()计算。
# 对于1D直方图,我们从BGR转换为灰度
# 对于2D直方图,需要将图像从BGR转换为HSV
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('ym.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 1维直方图
hist = cv2.calcHist([gray], [0], None, [256], [0, 256])
hist, bins = np.histogram(img.ravel(), 256, [0, 256])
plt.hist(img.ravel(), 256, [0, 256])
plt.show()
# 二维直方图可以让我们对不同的像素密度有了更好的了解
# OpenCV计算2D直方图
# HSV图像 [0,1]表示H、S通道,[180,256]表示H、S的bins分别为180、256
# [0,180,0,256]表示值的范围
hist = cv2.calcHist([hsv], [0, 1], None, [180, 256], [0, 180, 0, 256])
hist = np.clip(hist * 0.005, 0, 1)
cv2.imshow('hist', hist)
cv2.waitKey(0)
plt.imshow(hist, interpolation='nearest')
plt.show()
# Numpy计算1D直方图:np.histogram();
# Numpy计算2D直方图:np.historogram2d()
h, s, v = cv2.split(hsv)
hist, xbins, ybins = np.histogram2d(h.ravel(), s.ravel(), [180, 256], [[0, 180], [0, 256]])
plt.imshow(hist, interpolation='nearest')
plt.show()
参考
https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_histograms/py_2d_histogram/py_2d_histogram.html#twod-histogram
https://github.com/seminar2012/opencv/blob/master/samples/python/color_histogram.py
来源:https://blog.csdn.net/qq_40985985/article/details/118862088
标签:Opencv,二维直方图
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
日期垂直排列的两种技巧
2009-08-28 12:38:00
![](https://img.aspxhome.com/file/UploadPic/20098/28/01-16s.jpg)
asp最简单的生成验证码代码
2011-03-07 11:05:00
10点优化sql数据库技巧
2008-06-09 15:00:00
如何将 Access 的 Memo 型态字段汇入到 SQL2005 的 nvarchar 型态字段
2008-12-26 18:13:00
客户端数据存储–超越cookies
2008-01-15 13:01:00
无级分类的多级联动
2020-07-02 12:53:12
PL/SQL编程经验小结开发者网络Oracle
2010-07-18 13:27:00
asp随机提取access数据库记录的几种方法
2007-09-06 19:42:00
js 采用delete实现继承示例代码
2023-07-17 09:06:52
使用ODBC接口访问MySQL
2009-02-13 13:59:00
javascript 函数调用的对象和方法
2010-07-02 12:25:00
Go web入门Go pongo2模板引擎
2023-07-22 22:16:43
![](https://img.aspxhome.com/file/2023/7/99647_0s.png)
SqlServer参数化查询之where in和like实现详解
2012-05-22 18:10:50
Google Chrome的hack写法以及CSS的支持程度
2008-09-04 12:28:00
Excute后都需要返回一个RecordSet对象吗?
2009-10-28 18:28:00
asp将数据库中的信息存储至XML文件中
2007-09-19 12:54:00
ASP无组件上载,带进度条,多文件上载
2008-10-29 10:03:00
教程javascript的function(函数)
2007-09-30 13:38:00
![](https://img.aspxhome.com/file/UploadPic/20079/30/200793013468441s.gif)
YUI Compressor 组件压缩 JavaScript 的一些原理
2009-08-02 20:22:00
针对SQL Server中业务规则链接的分析
2009-01-20 11:43:00