微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试使用 Python 中的 openCV 的 calcHist 计算 3 通道颜色直方图时出现“断言失败”错误

如何解决尝试使用 Python 中的 openCV 的 calcHist 计算 3 通道颜色直方图时出现“断言失败”错误

所以我有一个函数可以在实验室空间中创建一个 3 通道直方图。我使用 cv2.calcHist 来计算直方图。

这是我的功能

def create_Lab_hist(img,bin_size=[2,5,5]):
    imgLab = cv2.cvtColor(img,cv2.COLOR_BGR2Lab)
    hist = cv2.calcHist([imgLab],[0,1,2],None,bin_size,-127,100,127,127])
    histN = hist/np.sum(hist)
    histTensor = torch.from_numpy(histN)
    return histTensor

当我尝试使用它运行代码时,出现以下错误

Traceback (most recent call last):
  File "/Users/anatolyryabchenko/Desktop/Projects/Pitcheye/colorCluster.py",line 160,in <module>
    histArray = create_hist_array(imgArray,hist_builder=create_Lab_hist)
  File "/Users/anatolyryabchenko/Desktop/Projects/Pitcheye/colorCluster.py",line 121,in create_hist_array
    histTensor = hist_builder(img)
  File "/Users/anatolyryabchenko/Desktop/Projects/Pitcheye/colorCluster.py",line 113,in create_Lab_hist
    hist = cv2.calcHist([imgLab],127])
cv2.error: OpenCV(4.5.1) /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/pip-req-build-p3unqtkr/opencv/modules/imgproc/src/histogram.cpp:202: error: (-215:Assertion Failed) ranges[i] && ranges[i][0] < ranges[i][1] in function 'histPrepareImages'

其余的代码应该没问题,因为当我用类似的函数替换 create_Lab_hist 时,但对于一个通道,一切正常。

我也看到 calcHist 有很多类似的问题,实际上这是合理的,因为错误消息根本没有提供信息。把这个问题变成一个小中心会很好,在那里给出与这个问题相关的所有答案

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。