我遇到并解决了这个数据类型的问题,希望能对一些人有所帮助。
通常我们会这样转换颜色,它有效:
img = cv2.imread("img.jpg"), 0)
imgColor=cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
然而有时您可能首先需要对图像进行标准化处理:
img = cv2.imread("img.jpg"), 0)/255.
imgColor=cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
这将导致以下错误:
错误:(-215)depth == CV_8U || depth == CV_16U || depth == CV_32F,函数中的>cv :: cvtColor
问题在于,在前一个示例中,dtype为uint8,而在后一个示例中为float64。要纠正此问题,请添加一行:
img = cv2.imread("img.jpg"), 0)/255.
img=img.astype(numpy.float32)
imgColor=cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
numpy
除法行为的问题,而不是OpenCV。 - Miki