【发布时间】:2013-10-12 18:14:47
【问题描述】:
我在尝试为我正在使用的 640x480 灰度图像生成直方图时遇到了困难。
我正在使用 Python 2.7.3、OpenCV 2.4.6(Python 绑定)和 Numpy
下面的图像是使用可执行软件工具(用 C++ 编程)从同一个图像生成的
这个直方图的属性是:
bins = 50
hist_width = 250
normalised_height_max = 50
因此图像规格为 250x50
我已查阅此文档:
OpenCV 中的直方图计算 http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_calculation/histogram_calculation.html
Hist.py - OpenCV Python 示例 https://github.com/Itseez/opencv/blob/master/samples/python2/hist.py
第二个参考中的代码编译得很好,但我尝试编辑它以获得这些块样式列而不是细线,但我似乎无法正确。
import cv2
import numpy as np
cv2.namedWindow('colorhist', cv2.CV_WINDOW_AUTOSIZE)
img = cv2.imread('sample_image.jpg')
h = np.zeros((50,256))
bins = np.arange(32).reshape(32,1)
hist_item = cv2.calcHist([img],0,None,[32],[0,256])
cv2.normalize(hist_item,hist_item,64,cv2.NORM_MINMAX)
hist=np.int32(np.around(hist_item))
pts = np.column_stack((bins,hist))
cv2.polylines(h,[pts],False,(255,255,255))
h=np.flipud(h)
cv2.imshow('colorhist',h)
cv2.waitKey(0)
我的目标是使用以下规格制作直方图:
bins = 32
hist_width = 256
normalised_height_max = 64
我如何修复此代码以实现与上述指定规格类似的直方图?
【问题讨论】:
标签: python opencv histogram grayscale