赞
踩
从统计的角度讲,直方图是图像内灰度值的统计特性与图像灰度值之间的函数,直方图统计图像内各个灰度级出现的次数。从直方图的图像上观察,横坐标是图像中各像素点的灰度级,纵坐标是具有该灰度级(像素值)的像素个数。
直方图是数值数据分布的精确图形表示。 这是一个连续变量(定量变量)的概率分布的估计,并且被卡尔·皮尔逊(Karl Pearson)首先引入。它是一种条形图。
构建直方图:
①将值的范围分段
②计算每个间隔中有多少值
作用
(1)显示图像质量波动的状态
(2)较直观地传递有关过程图像质量状况的信息
(3)掌握过程的状况,从而确定在什么地方集中力量进行图像质量改进工作
matplotlib.pyplot.hist(X, BINS,facecolor=‘yellowgreen’)
X:一维数组
BINS:数组的边界(如256)
import matplotlib.pyplot as plt
import cv2
import matplotlib.pyplot as plt
img1=cv2.imread("hj.jpg",0)
cv2.imshow("img1",img1)
plt.hist(img1.ravel(),256,facecolor='yellowgreen')
cv2.waitKey()
cv2.destroyAllWindows()
import cv2
import matplotlib.pyplot as plt
img1=cv2.imread("bd.jpg")
cv2.imshow("img1",img1)
plt.hist(img1.ravel(),256)
cv2.waitKey()
cv2.destroyAllWindows()
hist()
matplotlib.pyplot.hist(X,BINS)
import matplotlib.pyplot as plt
matplotlib.pyplot是一个有命令风格的函数集合,它看起
来和MATLAB很相似
matplotlib.pyplot.hist(X,BINS)
X:数据源,必须是一维(降维处理:b=a.ravel())的。图像通常是二维的,需要使用ravel()函数将图像处理为一维数据源以后,再作为参数使用。
BINS:表示灰度级的分组情况。
calcHist()
cv2.calcHist
(images,channels,mask,histSize,ranges,accumulate)
channels:指定通道编号。通道编号需要用“[]”括起来。
mask:掩模图像。当统计整幅图像的直方图时,将这个值设为None
histSize: BINS的值,该值需要用“[]”括起来。
ranges:即像素值范围。例如,8位灰度图像的像素值范围是[0,255]
accumulate:累计(累积、叠加)标识,默认值为False
import cv2
import numpy as np
img=cv2.imread("bd.jpg")
hist = cv2.calcHist([img],[0],None,[256],[0,255])
plt.plot(hist,color='b')
import cv2
import numpy as np
img=cv2.imread("bd.jpg")
histb = cv2.calcHist([img],[0],None,[256],[0,255])
histg = cv2.calcHist([img],[1],None,[256],[0,255])
histr = cv2.calcHist([img],[2],None,[256],[0,255])
plt.plot(histb,color='b')
plt.plot(histg,color='g')
plt.plot(histr,color='r')
import cv2
import numpy as np
from matplotlib import pyplot as plt
def image_hist(image):
color = ('blue', 'green', 'red')
for i, color in enumerate(color):
hist = cv2.calcHist([image],</
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。