python OpenCV jpeg compression in memory

Question:

In OpenCV it is possible to save an image to disk with a certain jpeg compression. Is there also a way to do this in memory? Or should I write a function using cv2.imsave() that loads the file and removes it again from disk? If anyone knows a better way that is also fine.

The use case is real-time data augmentation. Using something else than OpenCV would cause possibly unnecessary overhead.

Example of desired function im = cv2.imjpgcompress(90)

Asked By: Simon

||

Answers:

You can use imencode:

encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 90]
result, encimg = cv2.imencode('.jpg', img, encode_param)

(The default value for IMWRITE_JPEG_QUALITY is 95.)

You can decode it back with:

decimg = cv2.imdecode(encimg, 1)

Snippet from here

Answered By: Miki
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.