python-2.7 - 如何计算图像的直方图?

标签 python-2.7 opencv opencv3.1

如何解决以下错误?

   import cv2

   img= cv2.imread('/home/monojit/Desktop/crop.jpg')
   hsv= cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

   hist= cv2.calcHist([hsv],[0,1],None,[256],[0,256])
   print(hist)

   cv2.imshow('img',hsv)
   cv2.waitKey(0)
   cv2.destroyAllWindows()

但执行时出现以下错误:

Traceback (most recent call last):
File "/home/monojit/Desktop/hisCalc.py", line 6, in <module>
hist= cv2.calcHist([hsv],[0,1],None,[256],[0,256])
error: OpenCV(3.4.1) /home/monojit/Desktop/OpenCV/modules/imgproc/src/histogram.cpp:1782: error: (-215) csz == 0 || csz == dims in function calcHist

如何解决该错误?

最佳答案

问题出在这里:

hist= cv2.calcHist([hsv],[0,1],None,[256],[0,256])

问题的真正答案取决于您想要什么。

第二个参数是 channel 号。因此,如果您想要一个 channel (例如色调)的一维直方图,您应该将其更改为

hist= cv2.calcHist([hsv],[0],None,[256],[0,256])

第四和第五个参数是每个 channel 的箱数和范围。如果您想要色相和饱和度 channel 的二维直方图,您应该将其更改为

hist = cv2.calcHist([hsv], [0, 1], None, [256, 256], [0, 256, 0, 256])

关于python-2.7 - 如何计算图像的直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49590051/

相关文章:

python - 我如何打印没有括号的列表?

python - 自定义腐 eclipse 结果与 OpenCV 腐 eclipse 不匹配

python - 估计矩形对象的姿势不稳定

python - 使用 OpenCV 查找图像中的圆圈数

android - Android 中的 Facemark 或 Kazemi

c++ - opencv=3.1.0 的背景减法器

python - Gittle - "unexpected keyword argument ' pkey'”

python - 在每个其他列表项 Python 上使用 map

c++ - OpenCV 和 TBB 错误 x64

python - 如何动态覆盖__setitem__? (没有子类)