python - 尝试在 Python 中使用 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, [0, -127, -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], [0, 1, 2], None, bin_size, [0, -127, -127, 100, 127, 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 有很多类似的问题,实际上这是合理的,因为错误消息根本不提供信息。最好把这个问题变成一个小中心,在这里给出与这个问题相关的所有答案
解决方案
推荐阅读
- windows - 如何将 Docker Desktop 安装到没有互联网连接的 Windows 机器上
- python - 如何在 Python 中使用 Google Cloud Translation API 翻译大文本?
- c++ - 在 Qt5 中使用 QTextSteam 时“使用已删除功能”
- java - Android Gradle assembleRelease Android Replace old Apk
- c# - 保存控件中的数据以便在 C# 中更快地加载应用程序
- pytorch - 为什么 EfficientNet 相同的模型会返回不同的预测
- node.js - 上传到 AWS s3 存储桶时无法获取数据。位置
- c# - 谁能告诉哪个代码块进行并行操作以及为什么?
- mysql - 带有脚本过滤器的 JSON 路径似乎不适用于 MySql
- javascript - 在父文件中加载 php 文件也存储来自表单的数据