Ich möchte ein Bild des Typs CV_64FC1
in Python mit OpenCV in CV_8UC1
konvertieren.
In C++ können Sie mithilfe der convertTo
-Funktion den Bildtyp mithilfe des folgenden Codeausschnitts leicht konvertieren:
image.convertTo(image, CV_8UC1);
Ich habe im Internet gesucht, konnte jedoch keine fehlerfreie Lösung finden. Jede Funktion in Python OpenCV, um dies zu konvertieren?
Sie können es in ein Numpy-Array konvertieren.
import numpy as np
# Convert source image to unsigned 8 bit integer Numpy array
arr = np.uint8(image)
# Width and height
h, w = arr.shape
Offenbar akzeptieren OpenCV-Python-APIs auch Numpy-Arrays. Ich habe es allerdings nicht getestet. Bitte testen Sie es und lassen Sie mich das Ergebnis wissen.
Ich hatte ein ähnliches Problem und wenn ich versuche, das Bild 64F in CV_U8 zu konvertieren, würde ich am Ende einen schwarzen Bildschirm sehen.
Dieser link wird Ihnen helfen, die Datentypen und die Konvertierung zu verstehen. Unten ist der Code, der für mich funktioniert hat.
from skimage import img_as_ubyte
cv_image = img_as_ubyte(any_skimage_image)