问题描述
源代码如下:
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'
解决思路
出现问题的原因:“module”这个对象没有属性“LoadImage”。
猜测import cv
和from opencv.cv import *
这个发生了冲突,于是试着注释from opencv.cv import *
。
问题解决
当我将代码更改为以下内容时:
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'
通过查找资料了解到:
在OpenCV中加载haar分类器(无论如何在python接口中)只需使用cv.load
。
如下:
import cv
cascade = cv.Load('haarcascade_frontalface_alt.xml')
问题成功解决!!!!