我正在为 Python 使用 openCV,即 cv2 库。我使用以下函数来计算图像 im_converted 的直方图
hist = cv2.calcHist([im_converted], channels, None, histSize, ranges,hist, 1)
其中 im_converted 作为 uint8 类型的 numpy 数组加载。
hist 似乎被迫成为 float32 类型的 numpy 数组。当我使用反投影功能时会出现问题。(注意:我标准化直方图 st np.sum(hist)=1)
backProj = cv2.calcBackProject([im_converted], channels, hist, ranges,scale);
文档在这里。backProj 被迫成为一个 uint8 numpy 数组。
- 如果 scale=1,则 backProj = 0
- 如果 scale=255 则 backProj 不为零,但值非常小。
我的问题是:考虑到类型之间的差异,应该应用什么比例因子?没有办法改变类型吗?(注意:我试图做 hist=zeros(histSize, dtype=uint8) 但这不成功,我最后还是得到了一个 float32 直方图。)