Comment faire pour convertir une image à partir de CV_8UC1 à CV_32FC1 type dans opencv?
Je lus une image qui type de, il est CV_8UC1, et je veux le convertir en CV_32FC1.mais quand j'utilise convertTO() fonction de mon image devient tout blanc et je ne sais pas pourquoi!
Mat Image(512,512,CV_32FC1);
Image = imread("C:\\MGC.jpg",CV_LOAD_IMAGE_GRAYSCALE);
///show image
namedWindow("pic");
int x = 0; int y = 0;
imshow("pic", Image);
cout<<Image.type()<<endl;
Image.convertTo(Image,CV_32FC1);
cout<<Image.type()<<endl;
////show converted image
namedWindow("pic1");
imshow("pic1",Image );
- btw, votre Image initiale(512,512,CV_32FC1); alloction sera simplement remplacé par inread. il suffit de laisser vide.
Vous devez vous connecter pour publier un commentaire.
Parce que affichables gamme pour 32FC élément de type images est [0:1] (pour imshow).
Essayez cette.
Les méthodes utilisées par Andrey ne semble pas exister en courant (v3.4) opencv pour python.
Voici une solution alternative qui utilise scikit-image
http://scikit-image.org/docs/dev/user_guide/data_types.html
C'est un problème de montée en charge.
cvtColor
est difficile dans les plages du type de données. Lire ce ici.Si vous changez de
CV_8U
àCV32F
et vs les plages, ne l'est pas par eux-mêmes, Vous devez indiquer l'échelle de mesure.