python opencv imwrite ...找不到参数 [英] python opencv imwrite ... can't find params

查看:294
本文介绍了python opencv imwrite ...找不到参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将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:

  1. 尝试cv2.XXXXX
  2. 如果失败,请使用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下看了,嘿!在那里:

>>> cv2.cv.CV_IMWRITE_PNG_COMPRESSION
16

I am using opencv with python. I wanted to do an cv2.imwrte:

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

The only problem is that opencv does not recognize the params constants:

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

It cannot find CV_IMWRITE_PNG_COMPRESSION at all. Any ideas?

解决方案

I can't find key CV_XXXXX in the cv2 module:

  1. Try cv2.XXXXX
  2. Failing that, use cv2.cv.CV_XXXXX

In your case, cv2.cv.CV_IMWRITE_PNG_COMPRESSION.


More info.

The docs for OpenCV (cv2 interface) are a bit confusing.

Usually parameters that look like CV_XXXX are actually cv2.XXXX.

I use the following to search for the relevant cv2 constant name. Say I was looking for CV_MORPH_DILATE. I'll search for any constant with MORPH in it:

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']

From this I see that MORPH_DILATE is what I'm looking for.

However, sometimes the constants have not been moved from the cv interface to the cv2 interface yet.

In that case, you can find them under cv2.cv.CV_XXXX.

So, I looked for IMWRITE_PNG_COMPRESSION for you and couldn't find it (under cv2....), and so I looked under cv2.cv.CV_IMWRITE_PNG_COMPRESSION, and hey presto! It's there:

>>> cv2.cv.CV_IMWRITE_PNG_COMPRESSION
16

这篇关于python opencv imwrite ...找不到参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆