python - OpenCV mat :: convertTo en python
Est-il de toute fonction dans le OpenCV wrapper python qui fait la même chose que Mat méthode convertTo dans OpenCV 2?
En gros, j'ai envie d'appeler cette fonction en python
out.convertTo( out, CV_32F, 1.0/255, 0 );
où est une image en niveaux de gris.
J'ai déjà fait de l'utilisation du cv.ConvertScale en gardant mon heure d'été argument de type CV_32FC1, mais j'essaie de garder mon code python comme cv2 conforme que possible. Toute indices?
source d'informationauteur varagrawal
Vous devez vous connecter pour publier un commentaire.
Vous pouvez tout simplement utiliser les fonctions de Numpy pour cela.
par exemple :
de mise à l'échelle, vous aurez à faire séparément:
Si vous n'êtes pas d'essayer de convertir le type de données, utilisez ceci:
où alpha est vous facteur d'échelle et le bêta est une valeur de décalage.
Plus de détails dans la OpenCV docs.
Dans l'OP,
de sorte que vous n'avez pas à vous soucier de dépassement de capacité ou de débordement. Des Solutions de Adid Rahman K et knipknap fonctionnent très bien. Et ils devraient être beaucoup rapide.
Si, pour une raison quelconque, vous avez besoin d'un multiplicateur > 1, alors vous pouvez avoir des problèmes avec trop-plein. C'est la valeur n'est pas assez grand pour s'adapter au type de données choisi. La plupart des fonctions OpenCV va gérer le dépassement en tronquant à la valeur max du type de données. NumPy, cependant, vient de "roll over" de la valeur (par exemple, pour une 8 bits type de données -- max valeur 255 -- OpenCV force 260 à 255, mais NumPy force de 260 à 4!).
De sorte à traiter 8 bits en niveaux de gris de l'image et de la poignée de sous/sur les flux de cela: