division by zero problem

This commit is contained in:
Şefik Serangil 2020-06-28 11:28:14 +03:00
parent 68a792b290
commit b72b2ef05b

View File

@ -197,7 +197,12 @@ def detectFace(img, target_size=(224, 224), grayscale = False, enforce_detection
#--------------------------------
faces = face_detector.detectMultiScale(img, 1.3, 5)
faces = []
try:
faces = face_detector.detectMultiScale(img, 1.3, 5)
except:
pass
#print("found faces in ",image_path," is ",len(faces))
@ -265,24 +270,26 @@ def detectFace(img, target_size=(224, 224), grayscale = False, enforce_detection
#-----------------------
#apply cosine rule
cos_a = (b*b + c*c - a*a)/(2*b*c)
angle = np.arccos(cos_a) #angle in radian
angle = (angle * 180) / math.pi #radian to degree
if b != 0 and c != 0: #this multiplication causes division by zero in cos_a calculation
#-----------------------
#rotate base image
if direction == -1:
angle = 90 - angle
img = Image.fromarray(img_raw)
img = np.array(img.rotate(direction * angle))
#you recover the base image and face detection disappeared. apply again.
faces = face_detector.detectMultiScale(img, 1.3, 5)
if len(faces) > 0:
x,y,w,h = faces[0]
detected_face = img[int(y):int(y+h), int(x):int(x+w)]
cos_a = (b*b + c*c - a*a)/(2*b*c)
angle = np.arccos(cos_a) #angle in radian
angle = (angle * 180) / math.pi #radian to degree
#-----------------------
#rotate base image
if direction == -1:
angle = 90 - angle
img = Image.fromarray(img_raw)
img = np.array(img.rotate(direction * angle))
#you recover the base image and face detection disappeared. apply again.
faces = face_detector.detectMultiScale(img, 1.3, 5)
if len(faces) > 0:
x,y,w,h = faces[0]
detected_face = img[int(y):int(y+h), int(x):int(x+w)]
#-----------------------