質問編集履歴

1

ご指摘があったところを編集しました

2020/05/19 01:05

投稿

hiiragi777
hiiragi777

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,24 +1,102 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- いくらしらべても以下のエー文が何が原因発生しているかわからない
3
+ カメラで自分を映た際に顔認識し表示しようとしてます。
4
4
 
5
-
5
+ 一回実行するとカメラが起動するだけで何も表示されず、もう一回実行すると次のエラーが出ます。
6
6
 
7
7
 
8
8
 
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
11
- error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
11
+
12
12
 
13
13
  ```
14
14
 
15
- エラーメッセージ
15
+ error: OpenCV(3.4.1) C:\Miniconda3\conda-bld\opencv-suite_1533128839831\work\modules\imgproc\src\color.cpp:11147: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
16
16
 
17
17
  ```
18
18
 
19
19
 
20
20
 
21
21
  ### 該当のソースコード
22
+
23
+ import cv2
24
+
25
+
26
+
27
+ face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
28
+
29
+ eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
30
+
31
+
32
+
33
+ cap = cv2.VideoCapture(0)
34
+
35
+
36
+
37
+ if cap.isOpened() is False:
38
+
39
+ print("not cap")
40
+
41
+ sys.exit()
42
+
43
+
44
+
45
+ while True:
46
+
47
+
48
+
49
+ ret, frame = cap.read()
50
+
51
+
52
+
53
+ gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) エラー箇所はここを示しています
54
+
55
+
56
+
57
+ faces = face_cascade.detectMultiScale(gray)
58
+
59
+
60
+
61
+ if len(faces) != 0:
62
+
63
+
64
+
65
+ for (x,y,w,h) in faces:
66
+
67
+ cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
68
+
69
+ 顔画像(グレースケール)
70
+
71
+ roi_gray = gray[y:y+h, x:x+w]
72
+
73
+ 顔画増(カラースケール)
74
+
75
+ roi_color = frame[y:y+h, x:x+w]
76
+
77
+ 顔の中から目を検知
78
+
79
+ eyes = eye_cascade.detectMultiScale(roi_gray)
80
+
81
+ for (ex,ey,ew,eh) in eyes:
82
+
83
+ 検知した目を矩形で囲む
84
+
85
+ cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
86
+
87
+ _
88
+
89
+ 画像表示
90
+
91
+ cv2.imshow('img',frame)
92
+
93
+
94
+
95
+ 何かキーを押したら終了
96
+
97
+ cv2.waitKey(0)
98
+
99
+ cv2.destroyAllWindows()
22
100
 
23
101
 
24
102