Ich stieß auf dieses dtype Problem und hoffe, es wird für einige hilfreich sein.opencv cvtColor dtype Problem (Fehler: (-215))
Normalerweise würden wir konvertieren Farben wie dieses, das funktioniert:
img = cv2.imread("img.jpg"), 0)
imgColor=cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
aber manchmal können Sie das Bild normalisieren zuerst:
img = cv2.imread("img.jpg"), 0)/255.
imgColor=cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
Es ist in diesem Fehler führen:
error: (-215) depth == CV_8U || depth == CV_16U || depth == CV_32F in function >cv::cvtColor
Der Punkt ist, im ersten Beispiel ist dtype Uint8, während in der letzteren ist float64. Um dies zu korrigieren, fügen Sie eine Zeile:
img = cv2.imread("img.jpg"), 0)/255.
img=img.astype(numpy.float32)
imgColor=cv2.cvtColor(img , cv2.COLOR_GRAY2BGR)
Dies ist eine Frage, die für das "numpy" Verhalten mit Division und nicht für OpenCV spezifisch ist. – Miki