在OpenCV中从一维浮点数组计算直方图

2024-10-04 11:32:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建直方图并使用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)

Tags: 数据方法nprandom数组直方图arrayopencv
1条回答
网友
1楼 · 发布于 2024-10-04 11:32:15

上面的代码引发了一个异常(opencv 2.3.1):

OpenCV Error: Unsupported format or combination of formats () in calcHist, file /usr/ports/graphics/opencv-core/work/OpenCV-2.3.1/modules/imgproc/src/histogram.cpp, line 632
Traceback (most recent call last):
  File "ocv.py", line 8, in <module>
cv.CalcHist([cv.GetImage(cv.fromarray(np.array([x]))) for x in [angles, magnitudes]], hist)
cv2.error

使用np.浮动32对于角度和幅值,可以解决问题:

^{pr2}$

相关问题 更多 >