python OpenCV在内存中的jpeg压缩

Sim*_*mon 12 python jpeg opencv

在OpenCV中,可以使用特定的jpeg压缩将图像保存到磁盘.还有办法在记忆中做到这一点吗?或者我应该使用cv2.imsave()加载文件并从磁盘中再次删除它来编写函数?如果有人知道更好的方式也没关系.

用例是实时数据增强.使用除OpenCV之外的其他内容可能会导致不必要的开销.

所需功能的示例 im = cv2.imjpgcompress(90)

Mik*_*iki 31

你可以使用imencode:

encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 90]
result, encimg = cv2.imencode('.jpg', img, encode_param)
Run Code Online (Sandbox Code Playgroud)

(默认值为IMWRITE_JPEG_QUALITY95.)

你可以用以下方法解码它:

decimg = cv2.imdecode(encimg, 1)
Run Code Online (Sandbox Code Playgroud)

来自这里的片段

  • 我更多地在思考如何改善答案 (2认同)
  • @ jtlz2是合理的。添加到答案;) (2认同)