sws_scale YUV - RGB verzerrtes Bild

9

Ich möchte YUV420P image (erhalten von H.264 stream) in RGB umwandeln und dabei auch die Größe ändern, indem ich sws_scale verwende.
Die Größe des Originalbildes ist 480 × 800 . Einfaches Konvertieren mit gleichen Abmessungen funktioniert gut.
Aber wenn ich versuche, die Dimensionen zu ändern, bekomme ich ein verzerrtes Bild mit dem folgenden Muster:

  • das Wechseln zu 481 × 800 ergibt ein verzerrtes B & amp; W-Bild, das aussieht, als wäre es in der Mitte geschnitten
  • 482 × 800 wird noch mehr verzerrt sein
  • 483 × 800 ist verzerrt, aber in Farbe
  • 484 × 800 ist ok (richtig skaliert).

Nun folgt dieses Muster - die Skalierung funktioniert nur, wenn der Unterschied zwischen 4 und 4 liegt.

Hier ist ein Beispielcode, wie ich das Bild decodiere und umwandle. Alle Methoden zeigen "Erfolg".

%Vor%     
Sami susu 13.12.2011, 18:51
quelle

1 Antwort

-1

Wenn Sie ein Bitmap-Bild erstellen, MUSS die Breite des Bildes ein Vielfaches von 4 sein.

Sie müssen also die Breite ändern wie 480, 484, 488, 492 ...

Hier ist eine Methode, um zu einem Vielfachen von 4 zu wechseln

%Vor%

Ich hoffe, Sie lösen das Problem.

    
Yoon Chang Kook 19.11.2013 08:45
quelle

Tags und Links