Je souhaite convertir une image de type CV_64FC1
en CV_8UC1
en Python à l'aide d'OpenCV.
En C++, à l'aide de la fonction convertTo
, nous pouvons facilement convertir le type d'image à l'aide du fragment de code suivant:
image.convertTo(image, CV_8UC1);
J'ai cherché sur Internet mais je suis incapable de trouver une solution sans erreurs. Une fonction dans Python OpenCV pour convertir cela?
Vous pouvez le convertir en tableau Numpy.
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
Il semble que les API OpenCV Python acceptent également les tableaux Numpy. Je ne l'ai pas testé cependant. S'il vous plaît testez-le et laissez-moi savoir le résultat.
J'ai rencontré un problème similaire et lorsque j'essayais de convertir l'image 64F en CV_U8, je me retrouvais avec un écran noir.
Ce link vous aidera à comprendre les types de données et la conversion. Voici le code qui a fonctionné pour moi.
from skimage import img_as_ubyte
cv_image = img_as_ubyte(any_skimage_image)