我遇到並找出這個dtype問題,並希望它對一些問題有幫助。opencv cvtColor dtype問題(錯誤:(-215))
通常我們會轉換顏色這樣的,它的工作原理:
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)
這將導致此錯誤:
error: (-215) depth == CV_8U || depth == CV_16U || depth == CV_32F in function >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