导入opencv模块

时间:2012-01-31 10:29:47

标签: python opencv

我有一个简单的代码,如下所述:

import cv
from opencv.cv import *
from opencv.highgui import *

img = cv.LoadImage("test.jpg")
cap = cv.CreateCameraCapture(0)
while cv.WaitKey(1) != 10:
    img = cv.QueryFrame(cap)
    cv.ShowImage("cam view", img)
cascade = cv.LoadHaarClassifierCascade('haarcascade_frontalface_alt.xml', cv.Size(1,1))    

但我遇到了这个错误:

# AttributeError: 'module' object has no attribute 'LoadImage'

当我将代码更改为以下内容时:

import cv
#from opencv.cv import *
#from opencv.highgui import *

img = cv.LoadImage("test.jpg")
cap = cv.CreateCameraCapture(0)
while cv.WaitKey(1) != 10:
    img = cv.QueryFrame(cap)
    cv.ShowImage("cam view", img)
cascade = cv.LoadHaarClassifierCascade('haarcascade_frontalface_alt.xml', cv.Size(1,1))    

现在第一个错误得到解决,另一个错误提升。

AttributeError: 'module' object has no attribute 'LoadHaarClassifierCascade'

我需要这两个模块,但似乎它们之间存在冲突。

现在我要做什么?

2 个答案:

答案 0 :(得分:5)

在OpenCV中加载一个haar分类器(无论如何都在python接口中)你只需要使用cv.Load。

import cv
cascade = cv.Load('haarcascade_frontalface_alt.xml')

参见示例here

此外,OpenCV源附带的样本非常好(OpenCV-2.xx/samples/python)。

答案 1 :(得分:1)

如何访问您导入的内容?

# imports the cv module, all stuff contained in it and
# the module itself is now accessible via: cv.classname, cv.functionname
# where classname, functionname is the name of the class/function which
# the cv module provides..
import cv

# imports everything contained in the opencv.cv module
# after this import it is available via it's classname, functionname, etc.
# Attention: without prefix!!
from opencv.cv import *

# @see opencv.cv import 
from opencv.highgui import *

@see python modules了解有关python中模块和导入的更多详细信息。

如果您可以提供哪个类包含在哪个模块中,我可以为您的问题添加特定的解决方案。