問題の説明
ソースコードは次のとおりです。
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'
ソリューション
問題の理由:「モジュール」オブジェクトに属性「LoadImage」がありません。
推測import cv
とfrom opencv.cv import *
この矛盾なので、コメントfを試してくださいrom 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(とにかくpythonインターフェイス)でhaar分類子をロードするには、それを使用しcv.load
ます。
次のように:
import cv
cascade = cv.Load('haarcascade_frontalface_alt.xml')
問題は正常に解決されました!!!!