Ich habe ein Eingabebild vom Typ CV_32UC3 RGB Mat, das ich in CV_8UC3 konvertieren möchte. Ich habe versucht, die convertTo-Methode wie folgt zu verwenden:Wie kann ich ein 32b-Bild erfolgreich in 8b konvertieren?
img.convertTo(dst, CV_8UC3, 0.00390625)
Allerdings ist das resultierende Bild vollständig schwarz.
Meine Frage ist, wie kann ich erfolgreich ein 32b 3-Kanal-Bild in 8b konvertieren?
Etwas stimmt hier nicht überein. Zuerst sprichst du über 'CV_32UC3 -> CV_8UC3'. Später ist es 'CV_32UC4 -> CV_8UC4'. Dann in der Antwort wird es Fließkomma statt Integer. Also, was ist das eigentliche Problem, das Sie versuchen zu lösen? –
Diese Inkonsistenz hat keinen Einfluss auf die Frage, was aus der Betreffzeile deutlich wird. Um Verwirrung zu vermeiden, habe ich die Beschreibung bearbeitet. –
IMHO tut es. "CV_32UC3" unterscheidet sich von "CV_32FC3", wobei einer "int32_t" ist, der andere "float". Gleitkommabilder haben normalerweise einen Intensitätsbereich von 0.0-1.0. In einem Integer-Bild würde diese Art von Bereich nur 2 Farben bedeuten. Wenn Ihre Eingabedaten wirklich 32-Bit-Ganzzahlen sind, wie groß ist der tatsächliche Wertebereich? 0 .. (2^32) -1? –