在 OpenCV 中从一维浮点数组计算直方图
我想创建直方图并使用 opencv
方法 cv.CalcHist
计算它。但我的数据是一维数组而不是 IplImage 对象。为什么以下代码会产生零直方图?:
hist = cv.CreateHist([3, 3], cv.CV_HIST_ARRAY, [[0, 1], [0, 1]])
angles, magnitudes = np.random.rand(100), np.random.rand(100)
cv.CalcHist([cv.GetImage(cv.fromarray(np.array([x]))) for x in [angles, magnitudes]], hist)
np.array(hist.bins)
>>> array([[ 0., 0., 0.],
>>> [ 0., 0., 0.],
>>> [ 0., 0., 0.]], dtype=float32)
I want to create histogram and calculate it using opencv
method cv.CalcHist
. But my data is one-dimensional arrays instead of IplImage
objects. Why does the following code produce zero histogram?:
hist = cv.CreateHist([3, 3], cv.CV_HIST_ARRAY, [[0, 1], [0, 1]])
angles, magnitudes = np.random.rand(100), np.random.rand(100)
cv.CalcHist([cv.GetImage(cv.fromarray(np.array([x]))) for x in [angles, magnitudes]], hist)
np.array(hist.bins)
>>> array([[ 0., 0., 0.],
>>> [ 0., 0., 0.],
>>> [ 0., 0., 0.]], dtype=float32)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
上面的代码抛出异常(opencv 2.3.1):
使用 np.float32 获取角度和大小可以修复问题:
Your code above throws an exception (opencv 2.3.1):
Using np.float32 for angles and magnitude fixes the problem: