如何解决以下错误?
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/