質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2143閲覧

opencv webカメラ 顔認識 初心者

kuin

総合スコア13

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/02/07 06:26

初心者以前の問題だとおもいます
すみません
アドバイスをください

実現したいこと
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は宣言していると思うのですが、、

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2019/02/07 06:28

関数内で定義した変数は関数内でしか使えません。 cpa は main() という関数内で使ってるので、その外側では使えないです
guest

回答1

0

ベストアンサー

Pythonはインデントが意味を持つ言語です。

Python

1def main(): 2#open web camera 3 cpa = cv2.VideoCapture(0) 4 5# カスケードファイルを指定 6face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml") 7 8中略 9 10cv2.destroyAllWindows()

おそらく、destroyAllWindows()までmain関数のおつもりで書かれているでしょうが、インデントによりmain関数はcpa = cv2.VideoCapture(0)の一行で終わってしまっています。

main関数を続けたい場所までインデントを揃えましょう。

投稿2019/02/07 06:54

kazto

総合スコア7196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問