注意私は初心者です。私は画像を分析し、画像内に見つかった任意の顔の周りにボックスを配置するスクリプトを作った。その部分は機能する。何かするために必要なのは、if faces = Trueのif見つかった顔は真実ですが、私はそれが何であるか分かりませんが、顔は何もしません。もしopencvの顔検出器であれば
import cv2
import sys
import time
imagePath = sys.argv[1]
cascPath = sys.argv[2]
faceCascade = cv2.CascadeClassifier(cascPath)
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=5,minSize=(30, 30))#,flags = cv2.cv.CV_HAAR_IMAGE_SCALE)
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
if faces = True:
cv2.imshow("(1) Pamela Found" ,image)
else:
cv2.imshow("(0) Pamela's Found" ,image)
cv2.waitKey(0)&0xFF
コードがすでにあることちょうどそれを動作します:
if faces = True:
cv2.imshow("(1) Pamela Found" ,image)
else:
cv2.imshow("(0) Pamela's Found" ,image)
は動作しません。助けていただければ幸いです - ありがとう!
編集:
import cv2
import sys
import time
imagePath = sys.argv[1]
cascPath = sys.argv[2]
faceCascade = cv2.CascadeClassifier(cascPath)
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=5,minSize=(30, 30))#,flags = cv2.cv.CV_HAAR_IMAGE_SCALE)
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
if faces == True:
cv2.imshow("(1) Pamela(s) Found" ,image)
cv2.waitKey(0)&0xFF
else:
cv2.imshow("(0) Pamela(s) Found" ,image)
cv2.waitKey(0)&0xFF
私はこれを実行し、XMLファイルと顔のない画像、それが動作する、と言う、「(0)パメラ:今、私はこのように見えるようにコードを変更しました私がこれを実行すると、XMLファイル、およびウィンドウがポップアップしない顔を持つイメージが表示されます。これは、if文の下にあるwaitkeyと関係していると思います。ありがとう - ありがとう!
の重複 '性( x、y、w、h): '' faces'は[list](https://docs.python.org/3/tutorial/datastructures.html#more-on-lists)であると推測しています。 。おそらくあなたが望むのは 'len(faces)> 0'のようなものです – Hamms