微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何使用opencv添加ICC_profile函数,就像我们在PIL中保存jpeg压缩图像时插入它一样?

如何解决我如何使用opencv添加ICC_profile函数,就像我们在PIL中保存jpeg压缩图像时插入它一样?

我有一个 16 位图像,我想以 80% 的压缩率将其编码为 Jpeg。我以为我可以使用下面的 OpenCV 代码来实现它,但是在使用解码器后,我只能看到白色图像,而且我找不到 ICC_profile 的解决方案,就像我们在 PIL 中所做的那样。

PIL 代码

instance_byte_str_buffer_org = BytesIO()
img_tiles_org.save(instance_byte_str_buffer_org,"JPEG",quality=80,icc_profile=img_tiles_org.info.get('icc_profile'),progressive=False)

OpenCV 代码

img_scaled = cv2.normalize(bf_tiles_org,dst=None,alpha=0,beta=65535,norm_type=cv2.norM_MINMAX)
encode_param = [int(cv2.IMWRITE_JPEG_QUALITY),80]
is_success,im_buf_arr = cv2.imencode(".jpg",img_scaled,encode_param)
io_buf = io.BytesIO(im_buf_arr)
byte_im = io_buf.getvalue()

解码器:

decimg = cv2.imdecode(im_buf_arr,1)
cv2.imshow('Decoded image',decimg)

为什么图像是全白的?有什么办法可以解决这个问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。