加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – OpenCV中使用calcHist的模糊异常

发布时间:2020-12-20 11:22:47 所属栏目:Python 来源:网络整理
导读:尝试使用cv2.calcHist()时,我遇到了以下模棱两可的错误 imgarray([ 1.,2.,3.,4.,5.]) cv2.calcHist( [img],channels = [0],mask = np.ones(img.size),histSize = [6],ranges = [(0,6)])Traceback (most recent call last): File "stdin",line 1,in moduleSys
尝试使用cv2.calcHist()时,我遇到了以下模棱两可的错误

>>> img
array([ 1.,2.,3.,4.,5.])
>>> cv2.calcHist( [img],channels = [0],mask = np.ones(img.size),histSize = [6],ranges = [(0,6)])
Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
SystemError: error return without exception set

错误是如此通用,以至于我完全无法知道可能出现的问题.您可以找到记录为here的函数.我目前正在运行通过MacPorts安装的OpenCV v2.3.1.

谢谢!

解决方法

我发现Python界面的在线文档有点稀疏.
我发现一个非常宝贵的资源是样本(OpenCV-2.3.x / samples / python2),您可以在其中找到Python界面中几乎所有函数的示例用法.

但是查看文档:

> mask参数必须是8位(mask.astype(‘uint8’))
>输入img应该是CV_8U或CV_32F(所以img.astype(‘uint8’)或img.astype(‘float32’))

从查看python2示例(camshift.py,color_histogram.py):

> range参数不需要是一个元组,只需一个列表(虽然文档建议它应该是列表或数组数组……)

所以:

cv2.calcHist( [img.astype('float32')],# <-- convert to float32
              channels=[0],mask=np.ones(img.size).astype('uint8'),# <-- convert to uint8
              histSize=[6],ranges=[0,6] )                           # <-- flat list

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读