美文网首页
绘制直方图

绘制直方图

作者: 大龙10 | 来源:发表于2021-11-13 04:17 被阅读0次

    《OpenCV轻松入门:面向Python》读书笔记
    作者:李立宗
    出版社:电子工业出版社
    出版时间:2019-05

    第13章 直方图的处理

    13.2 绘制直方图

    • Python的模块matplotlib.pyplot中的hist()函数能够方便地绘制直方图,我们通常采用该函数直接绘制直方图。
    • 除此以外,OpenCV中的cv2.calcHist()函数能够计算统计直方图,还可以在此基础上绘制图像的直方图。

    13.2.1 使用Numpy绘制直方图

      模块matplotlib.pyplot提供了一个类似于MATLAB绘图方式的框架,可以使用其中的matplotlib.pyplot.hist()函数(以下简称为hist()函数)来绘制直方图。
      【例13.1】使用hist()函数绘制一幅图像的直方图。

    import cv2
    import matplotlib.pyplot as plt
    o=cv2.imread("image\\boat.jpg")
    cv2.imshow("original",o)
    plt.hist(o.ravel(),256)
    cv2.waitKey()
    cv2.destroyAllWindows()
    

    13.2.2 使用OpenCV绘制直方图

      OpenCV提供了函数cv2.calcHist()用来计算图像的统计直方图,该函数能统计各个灰度级的像素点个数。利用matplotlib.pyplot模块中的plot()函数,可以将函数cv2.calcHist()的统计结果绘制成直方图。

    import cv2
    import matplotlib.pyplot as plt
    o=cv2.imread("image\\girl.bmp")
    histb = cv2.calcHist([o],[0],None,[256],[0,255])
    histg = cv2.calcHist([o],[1],None,[256],[0,255])
    histr = cv2.calcHist([o],[2],None,[256],[0,255])
    plt.plot(histb,color='b')
    plt.plot(histg,color='g')
    plt.plot(histr,color='r')
    plt.show()
    
    图13-15 绘制彩色图像各个通道的直方图

    13.2.3 使用掩模绘制直方图

    在函数cv2.calcHist()中,参数mask用于标识是否使用掩模图像。当使用掩模图像获取直方图时,仅获取掩模参数mask指定区域的直方图。

    【例13.10】演示绘制掩模结果图像的直方图。

    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    image=cv2.imread("image\\girl.bmp",cv2.IMREAD_GRAYSCALE)
    mask=np.zeros(image.shape,np.uint8)
    mask[200:400,200:400]=255
    histImage=cv2.calcHist([image],[0],None,[256],[0,255])
    histMI=cv2.calcHist([image],[0],mask,[256],[0,255])
    plt.plot(histImage)
    plt.plot(histMI)
    

    相关文章

      网友评论

          本文标题:绘制直方图

          本文链接:https://www.haomeiwen.com/subject/joxrzltx.html