import numpy as np
import cv2
import os
import sys
import argparse
# LOADING THE IMAGE
parser = argparse.ArgumentParser(description='face detection')
parser.add_argument('-name', '-n', type=str, default='Dartboard/dart2.jpg')
args = parser.parse_args()
cascade_name = "Dartboardcascade/cascade.xml"
def detectAndDisplay(frame):
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
frame_gray = cv2.equalizeHist(frame_gray)
model = cv2.CascadeClassifier(cascade_name)
if not model.load(cascade_name):
print('--(!)Error loading cascade model')
exit(0)
faces = model.detectMultiScale(frame_gray, scaleFactor=1.1, minNeighbors=1, flags=0, minSize=(10,10), maxSize=(300,300))
print(len(faces))
for i in range(0, len(faces)):
start_point = (faces[i][0], faces[i][1])
end_point = (faces[i][0] + faces[i][2], faces[i][1] + faces[i][3])
colour = (0, 255, 0)
thickness = 2
frame = cv2.rectangle(frame, start_point, end_point, colour, thickness)
return faces
def save_detections_to_file(faces):
with open('detections.txt', 'a') as f: # 使用追加模式打开文件
for face in faces:
line = f"{args.name}, {face[0]}, {face[1]}, {face[2]}, {face[3]}\n"
f.write(line)
imageName = args.name
if (not os.path.isfile(imageName)) or (not os.path.isfile(cascade_name)):
print('No such file')
sys.exit(1)
frame = cv2.imread(imageName, 1)
if not (type(frame) is np.ndarray):
print('Not image data')
sys.exit(1)
detected_faces = detectAndDisplay(frame)
cv2.imwrite("detected.jpg", frame)
save_detections_to_file(detected_faces)
import numpy as np
import cv2
import os
import sys
import argparse
# LOADING THE IMAGE
parser = argparse.ArgumentParser(description='face detection')
parser.add_argument('-name', '-n', type=str, default='Dartboard/dart2.jpg')
args = parser.parse_args()
cascade_name = "Dartboardcascade/cascade.xml"
def detectAndDisplay(frame):
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
frame_gray = cv2.equalizeHist(frame_gray)
model = cv2.CascadeClassifier(cascade_name)
if not model.load(cascade_name):
print('--(!)Error loading cascade model')
exit(0)
faces = model.detectMultiScale(frame_gray, scaleFactor=1.1, minNeighbors=1, flags=0, minSize=(10,10), maxSize=(300,300))
print(len(faces))
for i in range(0, len(faces)):
start_point = (faces[i][0], faces[i][1])
end_point = (faces[i][0] + faces[i][2], faces[i][1] + faces[i][3])
colour = (0, 255, 0)
thickness = 2
frame = cv2.rectangle(frame, start_point, end_point, colour, thickness)
return faces
def save_detections_to_file(faces):
with open('detections.txt', 'a') as f: # 使用追加模式打开文件
for face in faces:
line = f"{args.name}, {face[0]}, {face[1]}, {face[2]}, {face[3]}\n"
f.write(line)
imageName = args.name
if (not os.path.isfile(imageName)) or (not os.path.isfile(cascade_name)):
print('No such file')
sys.exit(1)
frame = cv2.imread(imageName, 1)
if not (type(frame) is np.ndarray):
print('Not image data')
sys.exit(1)
detected_faces = detectAndDisplay(frame)
cv2.imwrite("detected.jpg", frame)
save_detections_to_file(detected_faces)
07-06
1万+
11-04
04-06
4609
11-26
5005
09-02
2949
05-25
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交