Wie würde ich ein Bild im YUV-Farbraum in ein JPEG-Bild konvertieren?Konvertieren von YUV in verlustbehaftete Komprimierung mit OpenCV
Ich habe ein Rohbilddaten in einem char * Variable gespeichert:
char* frame = (char*)camera->getFrame(); // YUV colorspace image data
ich statt dies zu einem JPEG-Bilddaten zu konvertieren. Ich möchte es nicht auf der Festplatte speichern, weil ich es in einem Stream senden werde.
Nun nennen kann, das ist nicht gut. Ich muss Bilder komprimieren, bevor ich sie auf einem System mit geschlossenem Embedded Linux streame. Es hat nur OpenCV und ich kann keine zusätzlichen Bibliotheken installieren. Gibt es eine andere Möglichkeit, Bilder vor dem Streaming zu komprimieren, damit sie leichter sind? Ich muss die schlechte Breite speichern. Ist gzip eine gute Idee? –
In der angenommenen Antwort meines zweiten Links finden Sie, dass OpenCV intern Funktionen zum Kodieren zu JPEG hat, ohne in eine Datei zu schreiben. In neueren Versionen von OpenCV können sie sich ohne weitere Ankündigung ändern, da sie nicht Teil der API sind. Wenn Sie auf einem geschlossenen System mit bestimmten Bibliothekseinstellungen festsitzen, interessieren Sie sich möglicherweise nicht dafür. Außerdem wird der Zip-Algorithmus immer hilfreich sein, aber Sie sollten nicht mit einer Reduzierung von mehr als 50% rechnen. – ypnos