2012-01-31 2 views
2

У меня есть простой код, как указано ниже:импортирующие 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' 

Мне нужны оба модуля, но кажется, что они конфликтуют друг с другом.

Теперь, что я должен сделать?

+0

Можете ли вы указать, какие классы содержатся в каком модуле? – Nicoretti

+1

Вы не используете какой-либо материал, который вы импортировали в строках 2 и 3. И насколько я понимаю, как работает python, невозможно прокомментировать эти строки, чтобы решить ваш «AttributeError» в первом случае (это либо в 'cv' модуле, либо нет, а импорт большего количества материалов в глобальное пространство имен не изменится) – wim

+0

из сообщения об ошибке вы можете определить, что последняя строка кода требуется для этого модуля, импортирующего !!! – Amin

ответ

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.

Если вы можете указать классы, в которых я могу добавить конкретное решение проблемы.

+0

Спасибо за помощь. – Amin

+0

Я думаю, что этот вопрос больше связан с тем, как правильно импортировать библиотеки OpenCV, чем импортировать в Python вообще – danr

+0

У python opencv есть библиотека с различным синтаксисом. – Amin

5

В OpenCV для загрузки хара-классификатора (в любом случае, в интерфейсе python) вы просто используете cv.Load.

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

См. Примеры here.

Кроме того, образцы, поставляемые с источником OpenCV, действительно хороши (в OpenCV-2.xx/samples/python).