python opencv imwrite …找不到params

我正在使用opencv和python.我想做一个cv2.imwrte:

cv2.imwrite('myimage.png', my_im)

唯一的问题是opencv无法识别params常量:

cv2.imwrite('myimage.png', my_im, cv2.CV_IMWRITE_PNG_COMPRESSION, 0)

根本找不到CV_IMWRITE_PNG_COMPRESSION.有任何想法吗?

最佳答案
我在cv2模块中找不到密钥CV_XXXXX:

>尝试cv2.XXXXX
>如果失败,请使用cv2.cv.CV_XXXXX

在您的情况下,cv2.cv.CV_IMWRITE_PNG_COMPRESSION.

更多信息.

OpenCV(cv2接口)的文档有点令人困惑.

通常看起来像CV_XXXX的参数实际上是cv2.XXXX.

我使用以下内容来搜索相关的cv2常量名称.说我正在寻找CV_MORPH_DILATE.我将用MORPH搜索任何常量:

import cv2
nms = dir(cv2) # list of everything in the cv2 module
[m for m in nms if 'MORPH' in m]
# ['MORPH_BLACKHAT', 'MORPH_CLOSE', 'MORPH_CROSS', 'MORPH_DILATE',
#  'MORPH_ELLIPSE', 'MORPH_ERODE', 'MORPH_GRADIENT', 'MORPH_OPEN',
#  'MORPH_RECT', 'MORPH_TOPHAT']

从这里我看到MORPH_DILATE是我正在寻找的.

但是,有时候常量还没有从cv接口移到cv2接口.

在这种情况下,您可以在cv2.cv.CV_XXXX下找到它们.

所以,我找了你的IMWRITE_PNG_COMPRESSION,找不到它(在cv2 ….下),所以我看了下cv2.cv.CV_IMWRITE_PNG_COMPRESSION,嘿presto!在那:

>>> cv2.cv.CV_IMWRITE_PNG_COMPRESSION
16

转载注明原文:python opencv imwrite …找不到params - 代码日志