opencv TypeError:imwrite()接受2个位置参数,但给出了3个

pbpqsu0x  于 2023-11-22  发布在  其他
关注(0)|答案(2)|浏览(182)

我试图保存jpg图像质量80由opencv.这里是我尝试的python脚本:

cv2.imwrite(isdocker.DOCKER_PREFIX + IM.path + IM.name, IM.data, [(int(cv2.IMWRITE_JPEG_QUALITY),80)])

字符串
它弹出一个错误'TypeError:imwrite()takes 2 positional arguments but 3 were given'.我知道here中有类似的帖子.但我认为它的不同问题.我已经阅读了来自opencv的文档,似乎他们已经改变了一些东西.请帮助我.
其他信息:Python 3.9.7(默认值,2022年5月19日,00:53:30)[GCC 9.3.0]在Linux上键入“help”,“copyright”,“credits”或“license”以获取更多信息。> import cv2 >cv2.version'4.5.5'

clj7thdc

clj7thdc1#

第三个参数是编解码器的 compression parameters,它以整数列表的形式给出(不是元组列表)。像这样:

cv2.imwrite(imagePath, inputImage, [cv2.IMWRITE_JPEG_QUALITY, 80])

字符串

kwvwclae

kwvwclae2#

如果你使用yolov 5,这个问题可以解释。
在/utils/general.py中,您可以找到类似以下内容:

def imwrite(path,im):
    # do something
cv2.imread , cv2.imwrite ,cv2.imshow = imread , imwrite , imshow

字符串
您可以只修改或删除它指定的JPEG质量

相关问题