【发布时间】:2017-04-07 16:59:35
【问题描述】:
在 OpenCV 中,可以使用特定的 jpeg 压缩将图像保存到磁盘。有没有办法在内存中做到这一点?或者我应该使用cv2.imsave() 编写一个函数来加载文件并再次从磁盘中删除它?如果有人知道更好的方法也很好。
用例是实时数据增强。使用 OpenCV 以外的其他东西可能会导致不必要的开销。
所需功能示例im = cv2.imjpgcompress(90)
【问题讨论】:
在 OpenCV 中,可以使用特定的 jpeg 压缩将图像保存到磁盘。有没有办法在内存中做到这一点?或者我应该使用cv2.imsave() 编写一个函数来加载文件并再次从磁盘中删除它?如果有人知道更好的方法也很好。
用例是实时数据增强。使用 OpenCV 以外的其他东西可能会导致不必要的开销。
所需功能示例im = cv2.imjpgcompress(90)
【问题讨论】:
你可以使用imencode:
encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 90]
result, encimg = cv2.imencode('.jpg', img, encode_param)
(IMWRITE_JPEG_QUALITY 的默认值为 95。)
您可以使用以下代码将其解码:
decimg = cv2.imdecode(encimg, 1)
来自here的片段
【讨论】: