• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Opencv实现二维直方图的计算及绘制

    这篇博客将介绍如何使用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

    到此这篇关于Opencv实现二维直方图的计算及绘制的文章就介绍到这了,更多相关Opencv 二维直方图 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • OpenCV-Python直方图均衡化实现图像去雾
    • 基于OpenCV的直方图匹配的实现方法
    • python 对一幅灰度图像进行直方图均衡化
    • OpenCV利用python来实现图像的直方图均衡化
    • 详解用Python为直方图绘制拟合曲线的两种方法
    • opencv python统计及绘制直方图的方法
    • OpenCV半小时掌握基本操作之直方图
    上一篇:python scrapy简单模拟登录的代码分析
    下一篇:python字典的元素访问实例详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Opencv实现二维直方图的计算及绘制 Opencv,实现,二维,直方图,