【问题标题】:python OpenCV jpeg compression in memory内存中的python OpenCV jpeg压缩
【发布时间】:2017-04-07 16:59:35
【问题描述】:

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

用例是实时数据增强。使用 OpenCV 以外的其他东西可能会导致不必要的开销。

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

【问题讨论】:

    标签: python opencv jpeg


    【解决方案1】:

    你可以使用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的片段

    【讨论】:

    • encimg的形状和im的不一样。这是为什么?之前:340 1080 3 之后:58154 1
    • import cv2 filename = 'image.png' im = cv2.imread(filename) encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 80] 结果,im = cv2.imencode('.jpg', im, encode_param) 打印结果
    猜你喜欢
    • 2010-10-22
    • 2015-06-20
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2020-03-25
    相关资源
    最近更新 更多