Dans OpenCV, il est possible d'enregistrer une image sur le disque avec une certaine compression jpeg. Existe-t-il également un moyen de le faire en mémoire? Ou dois-je écrire une fonction en utilisant cv2.imsave()
qui charge le fichier et le supprime à nouveau du disque? Si quelqu'un connaît un meilleur moyen, c'est bien aussi.
Le cas d'utilisation est l'augmentation des données en temps réel. Utiliser autre chose qu'OpenCV entraînerait des frais généraux éventuellement inutiles.
Exemple de fonction souhaitée im = cv2.imjpgcompress(90)
Vous pouvez utiliser imencode
:
encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 90]
result, encimg = cv2.imencode('.jpg', img, encode_param)
(La valeur par défaut pour IMWRITE_JPEG_QUALITY
est 95.)
Vous pouvez le décoder à nouveau avec:
decimg = cv2.imdecode(encimg, 1)
Extrait de ici