it-swarm.com.de

bild von CV_64F in CV_8U konvertieren

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?

5
Jazz

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.

10
Hi I'm Frogatto

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)
1