How to compress png file with opencv in python?

折月煮酒 提交于 2019-12-09 17:27:14

问题


I tried this code:

compression_params = [cv2.CV_IMWRITE_PNG_COMPRESSION, 9] 
img = cv2.imread('img1.png', cv2.IMREAD_UNCHANGED) 
cv2.imwrite('compress_img1.png', img, compression_params)

But I obtain this error:

AttributeError: module 'cv2' has no attribute 'CV_IMWRITE_PNG_COMPRESSION'

I'm working with python 3.5 and opencv 3.0


回答1:


The name in OpenCV 3.0 is IMWRITE_PNG_COMPRESSION (without the CV_ prefix).

So try:

cv2.imwrite('compress_img1.png', img,  [cv2.IMWRITE_PNG_COMPRESSION, 9])

This post mentions also to cast to int. I'm not sure if this is still needed:

cv2.imwrite('compress_img1.png', img,  [int(cv2.IMWRITE_PNG_COMPRESSION), 9])


来源:https://stackoverflow.com/questions/40027678/how-to-compress-png-file-with-opencv-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!