如何解决如何 cv2.imencode 和 imdecode (jpeg) 来获取不同的 QF 值?
我需要使用 open cv 函数:cv2.imencode,cv2.imdecode
来压缩 (jpeg) 和解压缩 (jpeg) 以获得不同的 QF 值。
图片是来自https://imagecompression.info/test_images/
bridge.ppm
”
我试过了:
bridge = cv2.imread('./bridge.ppm')
bridge_en = cv2.imencode('.jpeg',bridge)
bridge_de = cv2.imdecode('.jpeg',bridge_en)
cv2.imshow('image',bridge_de)
但我在第 2 行收到错误消息:"Expected Ptr<cv::UMat> for argument 'buf'".
另外,如何更改和测试不同的 QF 值?
解决方法
的文档
imencode
返回两个值,编码的缓冲区是第二个。并且 imdecode
接受编码的缓冲区和一个标志。所以:
bridge = cv2.imread('./bridge.ppm')
bridge_en = cv2.imencode('.jpeg',bridge)[1] # you need the second value
bridge_de = cv2.imdecode(bridge_en,cv2.IMREAD_UNCHANGED) # or any other flag,same as 'imread'
cv2.imshow('image',bridge_de)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。