histogram给出图像的密度分布的总体概念,它的x轴是像素值(0到255)y轴是对应的像素在图像里的数量。
cv2.calcHist()函数
cv2.calcHist(images, channels, mask, histSize, ranges[,hist[,accumulate]])
1.images:这是uint8或者float32的原图。应该是方括号方式传入:“[img]”
2.channels:也是用方括号给出的,我们计算histogram的channel的索引,比如,如果输入时灰度图,值就是[0],对于彩色图片,你可以传[0],[1]和[2]来分别计算蓝色,绿色和红色通道的histogram。
3.mask:掩图,要找到整个图像的histogram,这里传入"None"。但是如果你想找到特定区域图片的histogram,就得创建一个掩图
4.histSize:BIN数量,需要用户方括号传入,对于全刻度,我们传入[256].
5.ranges:RANGE,一般来说是[0,256].
Numpy np.histogram() 和np.bincount()
hist,bins=np.histogram(img.ravel(),256,[0,256])
hist = np.bincount(img.ravel(), minlength=256)
import cv2
from matplotlib import pyplot as plt
img=cv2.imread('touxiang.jpg',0)
hist=cv2.calcHist([img],[0],None,[256],[0,256])
# 绘制直方图
# 使用Matplotlib绘制函数
# matplotlib.pyplot.hist() 它直接找到histogram然后绘制
import cv2
import numpy