初心者以前の問題だとおもいます
すみません
アドバイスをください
実現したいこと
webカメラを起動して
カメラでリアルタイムに顔に四角い枠を表示したいです
Main.py
1 2import numpy as np 3import cv2 4 5def main(): 6#open web camera 7 cpa = cv2.VideoCapture(0) 8 9# カスケードファイルを指定 10face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml") 11 12print('OK1') 13 14while True: 15 # get img 16 17 ret, frame = cpa.read() 18 #retは,cap.read()でフレームが正しくよみこめた確認 フラグ 19 20 21#グレースケール化 22 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 23 faces = face_cascade.detectMultiScale(gray,minNeighbors=20) 24 25#四角で囲む 26 for (x, y, w, h) in faces: 27 cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) 28 29#show imag 30 cv2.imshow('frame', img) 31 32 33cap.release() 34cv2.destroyAllWindows() 35 36if __name__=='__main__': 37 main() 38
エラー分は
OK1
Traceback (most recent call last):
File "Main.py", line 15, in <module>
ret, frame = cpa.read()
NameError: name 'cpa' is not defined
cpaは宣言していると思うのですが、、
関数内で定義した変数は関数内でしか使えません。
cpa は main() という関数内で使ってるので、その外側では使えないです
回答1件
あなたの回答
tips
プレビュー