如何解决以下错误?
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
如何解决错误?
答案 0 :(得分:1)
问题在于:
hist= cv2.calcHist([hsv],[0,1],None,[256],[0,256])
问题的真正答案取决于你想要什么。
第二个参数是一个频道号。因此,如果您想要一个通道的1d直方图(例如,Hue),则应将其更改为
hist= cv2.calcHist([hsv],[0],None,[256],[0,256])
第四和第五个参数是每个通道的区间数和范围。如果你想获得Hue和Saturation通道的2d直方图,你应该将它改为
hist = cv2.calcHist([hsv], [0, 1], None, [256, 256], [0, 256, 0, 256])