Ändern Sie den Typ des Mat-Objekts von CV_32F in CV_8U

Ich habe versucht, ein Bild vom Typ CV_32F mit der Funktion imshow anzuzeigen, aber es wurde ein angezeigtWeißes Bild. In demDokumentation Es wird vorausgesetzt, dass Gleitkommabilder auf 0-255 abgebildet und angezeigt werden, aber es wird nur ein weißes Bild angezeigt. Ich habe versucht, es mit CV_8U zu konvertieren

Mat A = Mat :: ones (300, 300, CV_32FC1) * 1000;

Verarbeiten Sie etwas, indem Sie den Pixeln in A Gleitkommazahlen zuweisen

......

Matte B;

A.convertTo (B, CV_8U)

Wenn ich 'B' zeige, bekomme ich ein Schwarz-Weiß-Bildkeine Grautöne. Sind die float-bewerteten Pixel in A richtig auf 0-255 abgebildet? Mache ich etwas falsch?

Wenige Werte in A sind 1000 als initialisiert und Rest sind einige Gleitkommazahlen, die während der Verarbeitung zugewiesen werden.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage