使用Python+opencv的“import cv”和“import opencv.cv”之间的区别?

2024-09-28 05:19:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python使用OpenCV,并转换一些C++代码。不管怎样,如果我这样做了:

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

没关系。或:

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

但是无论如何,cv模块没有cvSize数据结构,opencv.cv没有LoadImage。那么,每个模块到底有什么?我想查一下文件,但找不到。我应该这样使用它还是我的设置配置错误?


Tags: 模块代码imageimportimgsizeasopencv
2条回答

使用:

import cv 

您将从python模块搜索目录中的任何位置导入cv模块。这可能是存储在opencv包安装之外的模块的另一个版本,就像在本例中一样。

但是:

import opencv.cv

您将显式导入cv的opencv包版本,即opencv包的install目录中的版本。这个版本几乎可以保证您拥有opencv包中的版本,并且它似乎与使用语法相同:

from opencv import cv

真正的答案是:)无论是“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

从opencv 2.2的源代码来看,旧式包装使用SWIG,新式包装,似乎是自制的。

相关问题 更多 >

    热门问题