dig*_*ger 5 python opencv computer-vision
我在 python 中使用 Opencv,遇到了一个问题。
当我运行以下代码时:
img = cv2.imread('test.jpg',0)
hist = cv2.calcHist([img],[0],None,256,[0,256])
Run Code Online (Sandbox Code Playgroud)
发生错误:SystemError: <built-in function calcHist> returned NULL without setting an error
我很困惑,在网络中找不到相同的错误,所以出了什么问题?
谢谢。
PS:我在 Windows 和 Ubuntu 中运行相同的代码,并得到相同的错误,所以这可能不是系统的原因?
小智 6
错误消息确实令人困惑,但实际错误很简单。即使您只使用 1 个通道,您仍然需要提供直方图大小和范围的列表。您已经为范围做到了这一点,但没有为大小做到这一点。这应该有效:
img = cv2.imread('test.jpg',0)
hist = cv2.calcHist([img],[0],None,[256],[0,256])
Run Code Online (Sandbox Code Playgroud)
Wo-Ki 预计您的下一个问题,因为只制作蓝色通道的直方图是不寻常的,而您可能想要一个强度直方图。在这种情况下,请使用 Wo-Ki 建议的中间转换步骤。
小智 0
这个问题可以这样解决:
img = cv2.imread("picture.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hist = cv2.calcHist([gray], [0], None, [256], [0, 256])
Run Code Online (Sandbox Code Playgroud)