참고 사항 초보자입니다. 나는 그림을 분석하고 이미지에서 발견 된 모든 얼굴 주위에 상자를 배치하는 스크립트를 만들었습니다. 그 부분은 효과가있는 것으로 "if faces = True"의 "faces"를 변경하는 것이 필요합니다. If 발견 된 얼굴 = 사실, 나는 그것이 무엇인지 알지 못한다. 얼굴은 아무것도하지 않는다.다른 사람이 opencv로 얼굴 검출기를 사용하는 경우
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 Found" ,image)
else:
cv2.imshow("(0) Pamela's Found" ,image)
cv2.waitKey(0)&0xFF
코드는 이미이 것을 그냥 작동합니다. 도와 주시면 감사하겠습니다 - 고마워요!
편집 :
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) 파멜라 : 지금은 같이하는 코드를 변경 (s) Found "가 필요하지만, XML 파일을 실행하고 창에 얼굴이 나타나지 않는 이미지는 팝업 문구가 아닌 if 문 아래의 waitkey와 관련이 있다고 생각합니다. 감사하겠습니다 - 고마워요! 조건 등
의 중복 '이 될 수 있습니다 (x, y, w, h) :'얼굴 '은 [list] (https://docs.python.org/3/tutorial/datastructures.html#more-on-lists)라고 생각합니다. . 당신이 원했던 것은'if len (faces)> 0'과 같은 것입니다. – Hamms