回答編集履歴

2

d

2020/01/09 08:58

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -9,3 +9,73 @@
9
9
  cv2.CascadeClassifier('cascade_file_path')
10
10
 
11
11
  ```
12
+
13
+
14
+
15
+ ## 追記
16
+
17
+
18
+
19
+ 問題切り分けのために、assert を入れたので、これを実行して見てください
20
+
21
+
22
+
23
+ ```python
24
+
25
+ import cv2
26
+
27
+ import numpy as np
28
+
29
+ import matplotlib.pyplot as plt
30
+
31
+ import os
32
+
33
+
34
+
35
+ face = cv2.imread("face.jpg", 0)
36
+
37
+ assert face is not None, "画像ファイルの読み込みに失敗"
38
+
39
+
40
+
41
+ plt.imshow(face, cmap="gray")
42
+
43
+
44
+
45
+ cascade_file_path = (
46
+
47
+ "C:/Users/satoshi/opencv-master/data/haarcascades_frontalface_default.xml"
48
+
49
+ )
50
+
51
+ face_cascade = cv2.CascadeClassifier(cascade_file_path)
52
+
53
+ assert os.path.exists(cascade_file_path), f"{os.path.abspath(cascade_file_path)} が存在しない"
54
+
55
+
56
+
57
+ def detect_face(img):
58
+
59
+ face_img = img.copy()
60
+
61
+ face_rects = face_cascade.detectMultiScale(face_img)
62
+
63
+
64
+
65
+ for (x, y, w, h) in face_rects:
66
+
67
+ cv2.rectangle(face_img, (x, y), (x + w, y + h), (255, 255, 255), 10)
68
+
69
+
70
+
71
+ return face_img
72
+
73
+
74
+
75
+
76
+
77
+ result = detect_face(face)
78
+
79
+ plt.imshow(result, cmap="gray")
80
+
81
+ ```

1

f

2020/01/09 08:57

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,4 +1,4 @@
1
- よくみたら、CascadeClassifier にわたのが、cascade_file_path ではなく、'cascade_file_path' という文字列になっていますね。
1
+ よくみたら、CascadeClassifier にわたしているのが、cascade_file_path という変数ではなく、'cascade_file_path' という文字列になっていますね。
2
2
 
3
3
  これが原因ではないでしょうか。
4
4