Python-cv2.calcHist()的使用

定义

cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate ]]) ->hist

  • imaes:输入的图像

  • channels:选择图像的通道

  • mask:掩膜,是一个大小和image一样的np数组,其中把需要处理的部分指定为1,不需要处理的部分指定为0,一般设置为None,表示处理整幅图像

  • histSize:使用多少个bin(柱子),一般为256

  • ranges:像素值的范围,一般为[0,255]表示0~255

后面两个参数基本不用管。注意,除了mask,其他四个参数都要带[]号。

import cv2
import numpy as np
from matplotlib import pyplot as plt
from PIL import Image

img = cv2.imread('1.jpg')
hist = cv2.calcHist([img],[0],None,[256],[0,255])
#hist是一个shape为(256,1)的数组,表示0-255每个像素值对应的像素个数,下标即为相应的像素值
#plot一般需要输入x,y,若只输入一个参数,那么默认x为range(n),n为y的长度
plt.plot(hist)
plt.show()

#使用多个图像
#hist = cv2.calcHist([img1,img2],[0,0],None,[256,256],[0,255,0,255])

image

posted @ 2021-06-04 16:39  司砚章  阅读(475)  评论(0编辑  收藏  举报