使用Python + OpenCV,"import cv"和"import opencv.cv"有什么区别?

3

我正在尝试使用Python与OpenCV,并将一些C++代码转换为Python。无论如何,如果我这样做:

import cv
img = cv.LoadImage('image.jpg')

没问题。或者:

import opencv.cv as opcv
size = opcv.cvSize(40, 50)

无论如何,cv模块没有cvSize数据结构,opencv.cv也没有LoadImage。那么,每个模块具体有什么呢?我尝试查看文档,但找不到相关信息。我应该这样使用吗,还是我的设置出了问题?

2个回答

2

真正的答案是:)"import opencv.cv"和"from opencv import cv"都是旧式的包装导入。

从OpenCV 2.0开始,使用新式Python包装,您应该使用以下样式:

# import only cv, no opencv
# this also brings in sub modules such as highgui
import cv
# no "cv" prepended before all method names
src_mat = cv.LoadImageM('yourfilename.png', cv.CV_LOAD_IMAGE_GRAYSCALE)
# let's show the image in a window
cv.NamedWindow('your name', 1)
cv.ShowImage('your name', src_mat)
cv.WaitKey

旧式的封装使用了SWIG,根据OpenCV 2.2源代码显示,新式封装似乎是自主开发的。


0

使用:

import cv 

你正在从Python模块搜索目录中的任何位置导入cv模块。这可能是存储在opencv软件包安装之外的某个地方的模块的不同版本,就像在这种情况下一样。

但是使用:

import opencv.cv

你正在明确导入opencv软件包版本的cv,即安装目录中opencv软件包的版本。这个版本几乎可以保证你拥有opencv软件包里的那个版本,它似乎与使用以下语法相同:
from opencv import cv

我只是通过Ubuntu存储库安装了OpenCV。有没有办法知道他们具体指向哪里?此外,文档建议使用import cv:http://opencv.willowgarage.com/wiki/PythonInterface - otirra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接