Typ I mit dem folgenden Befehl ein Bild lese:Umwandeln eines Bildes Doppel
lefty = imread('sintra2.JPG');
und imshow();
gibt mir ein gutes resault. aber wenn ich versuche zu verwenden:
lefty = double(imread('sintra2.JPG'));
imshow()
gibt mir ein weißes Bild. Ich arbeite mit einem relativ großen Bild shared here. Gibt es eine Verbindung?
Wie kann ich konvertieren, wenn es überhaupt notwendig ist? Mir wurde gesagt, dass es besser ist mit Double zu arbeiten, wenn man in MATLAB an Bildverarbeitung und Computer Vision arbeitet.
Ich würde dies umformulieren: * "aber skaliert auch die Werte zwischen 0 und 1" *. Die Leute haben den falschen Eindruck, dass, wenn Ihre Bilddaten nicht den gesamten Dynamikbereich des Datentyps umfassen (zum Beispiel ein Minimum und Maximum von 32 und 128 für 'uint8'), "im2double" dieses Bild skaliert, so dass das Minimum ist 0 und das Maximum ist 1. Alles "im2double" ist, dass es erkennt, um welchen Typ das Bild geht und teilt alle Einträge in der Eingabe mit dem größtmöglichen Wert des Eingabetyps. Außer der Division wird keine zusätzliche Skalierung durchgeführt. Das bin nur ich und ich mag es zu picken. – rayryeng
@rayryeng Es schien mir vorher offensichtlich, aber jetzt nachdem ich Ihren Kommentar und die andere Antwort gelesen habe, stimme ich mit dem überein, was Sie gesagt haben. So editiert es nach deiner Empfehlung. Danke –
Ehrfürchtig. Habe eine Verbesserung von mir. – rayryeng