So konvertieren Sie ein Bild von CV_8UC1 zu CV_32FC1 geben Sie in opencv?
Ich gelesenen ein Bild, welche Art von es ist CV_8UC1, und ich will es konvertieren zu CV_32FC1.aber wenn ich convertTO () - Funktion mein Bild komplett weiß und ich weiß nicht, warum!
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, dein erstes Bild(512,512,CV_32FC1); alloction wird nur überschrieben werden durch inread. lass es einfach leer.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil Darstellbare Bereich für 32FC-Typ element-Bilder ist [0:1] (für imshow).
Dies versuchen.
Die Methoden, die von Andrey scheinen nicht zu existieren, in der aktuellen (v3.4) opencv für python.
Hier ist eine alternative Lösung, die verwendet scikit-image
http://scikit-image.org/docs/dev/user_guide/data_types.html
Es ist ein Skalierungs-problem.
cvtColor
ist schwierig, in den Bereichen der Daten-Typ. Lesen Sie diese hier.Wenn Sie von
CV_8U
zuCV32F
und vs. das reicht nicht skaliert nicht von selbst, Sie müssen angeben, die Skalierung zu Messen.