OpenCV学习笔记-图像直方图

import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

def plot_dome(img):
    plt.hist(img.ravel(),256,[0,256]) # ravel() 统计所有数据出现的频次
    plt.title('histogram')
    plt.show()

def image_hist(img):
    #利用图像的直方图可以找到图像的直观特征 通过观察直方图的波峰波谷 可以看出来图像的关键
    color = ['blue','green','red']
    for i, color in enumerate(color):
        hist = cv.calcHist([img],[i],None,[256],[0,256])
        '''
        calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None)
        image: 输入图像
        channels: 对应通道
        mask: 这里没有,赋值None
        histSize: 直方图的bins
        ranges: 取值范围
        '''
        plt.plot(hist,color=color)
        plt.xlim([0,256])

    plt.show()

img = cv.imread('img/WindowsLogo.jpg')
cv.namedWindow('img',cv.WINDOW_AUTOSIZE)
cv.imshow('img',img)

image_hist(img)

cv.waitKey(0)
cv.destroyAllWindows()

猜你喜欢

转载自blog.csdn.net/qq_36387683/article/details/80312287