好啦。现在我们来介绍下图像的直方图说白了,直方图就是统计图像中像素点为某值的个数对于8位灰度图来说,颜色有256级,统计每级的个数然后把结果用图表表示出来就可以了看看程序吧import cvdef Hist(image):
a = [0]*256
w = image.width
h = image.height
iHist = cv.CreateImage((256,256),8,3)
for i in range(h):
for j in range(w):
iGray = int(image[i,j])
a[iGray] = a[iGray] + 1
S = max(a)
c = cv.RGB(200,150,255)
for k in range(256):
a[k] = a[k]*200/S
x = (k,255)
y = (k,255-a[k])
cv.Line(iHist,x,y,c)
return iHistimage = cv.LoadImage('lena.jpg',0)iHist = Hist(image)cv.ShowImage('image',image)cv.ShowImage('iHist',iHist)cv.WaitKey(0) 我们先统计各灰度值像素点个数然后我们把个数值映射到(0,200)的范围方便我们画图我们来看看结果吧。 还可以啦其实OpenCV提供了直方图函数我简单看了下,没有丝毫思路,以后看懂了再来对比一下 现在我们把一幅图的三个通道放开来看看吧 import cvdef Hist(image,color = cv.RGB(2