@@ -20,74 +20,52 @@ def image_filtering_face(path_filter,path_img,center,width,height,up,left,counte
2020 detector = dlib .get_frontal_face_detector ()
2121 faces = detector (image )
2222 if faces :
23- try :
24- for i in range (len (path_filter )):
25- return filter (image ,gray_image ,faces ,filter_image [i ],center [i ],width [i ],height [i ],up [i ],left [i ])
26- except :
27- image = cv2 .imread (path_img )
28- print ("except" )
29- return image
30-
31- # key = cv2.waitKey(0)
32- # if key == ord('n'):
33- # change_image(counte)
34- # elif key == ord('q'):
35- # cv2.destroyAllWindows()
36- #
37- # elif key == ord("c"):
38- # img_name = "../saved/opencv_frame.png"
39- # cv2.imwrite(img_name, image)
40- # print("{} written!".format(img_name))
41-
42- # image = cv2.imread(img_name)
43- # cv2.imshow("Frame", image)
44- # key = cv2.waitKey(0)
45- # os.remove("../saved/opencv_frame.png")
46- # if key == ord("s"):
47- # user_name = input("enter name")
48- # imgdir = f"../saved/{user_name}.png"
49- # cv2.imwrite(imgdir, image)
50- # image_filtering_face(["../assest/tongue.png"],"../assest/face.jpg",[57],[0.6],[1.2],[-25],[0])
51- # if key == ord("e"):
52- # image_filtering_face(["../assest/tongue.png"],"../assest/face.jpg",[57],[0.6],[1.2],[-25],[0])
53-
23+ # try:
24+ for i in range (len (path_filter )):
25+ return filter (image ,gray_image ,faces ,filter_image [i ],center [i ],width [i ],height [i ],up [i ],left [i ])
26+ # except:
27+ # image = cv2.imread(path_img)
5428
29+ # return image
5530
5631
5732def filter (image ,gray_frame ,faces ,filter_image1 ,center ,width ,height ,up = 0 ,left = 0 ):
5833 predictor_path = "../assest/shape_predictor_68_face_landmarks.dat"
5934 predictor = dlib .shape_predictor (predictor_path )
6035 for face in faces :
61- landmarks = predictor (gray_frame , face )
62-
63- center_filter = (landmarks .part (center ).x - left , landmarks .part (center ).y - up )
64- left_filter = (landmarks .part (4 ).x , landmarks .part (4 ).y )
65- right_filter = (landmarks .part (14 ).x , landmarks .part (14 ).y )
66-
67- filter_width = int (hypot (left_filter [0 ] - right_filter [0 ],
68- left_filter [1 ] - right_filter [1 ]) * width )
69- filter_height = int (filter_width * height )
70-
71- # New filter position
72- top_left = (int (center_filter [0 ] - filter_width / 2 ),
73- int (center_filter [1 ] - filter_height / 2 ))
74- bottom_right = (int (center_filter [0 ] + filter_width / 2 ),
75- int (center_filter [1 ] + filter_height / 2 ))
76-
77- # Adding the new filter
78- filtery = cv2 .resize (filter_image1 , (filter_width , filter_height ))
79- filtery_gray = cv2 .cvtColor (filtery , cv2 .COLOR_BGR2GRAY )
80- _ , filter1 = cv2 .threshold (filtery_gray , 25 , 255 , cv2 .THRESH_BINARY_INV )
81-
82- filter_area = image [top_left [1 ]: top_left [1 ] + filter_height ,
83- top_left [0 ]: top_left [0 ] + filter_width ]
84- filter_area_no_filter = cv2 .bitwise_and (filter_area , filter_area , mask = filter1 )
85- final_filter = cv2 .add (filter_area_no_filter , filtery )
86-
87- image [top_left [1 ]: top_left [1 ] + filter_height ,
88- top_left [0 ]: top_left [0 ] + filter_width ,:] = final_filter
89- print ("filter1" )
90- return image
36+ try :
37+ landmarks = predictor (gray_frame , face )
38+
39+ center_filter = (landmarks .part (center ).x - left , landmarks .part (center ).y - up )
40+ left_filter = (landmarks .part (4 ).x , landmarks .part (4 ).y )
41+ right_filter = (landmarks .part (14 ).x , landmarks .part (14 ).y )
42+
43+ filter_width = int (hypot (left_filter [0 ] - right_filter [0 ],
44+ left_filter [1 ] - right_filter [1 ]) * width )
45+ filter_height = int (filter_width * height )
46+
47+ # New filter position
48+ top_left = (int (center_filter [0 ] - filter_width / 2 ),
49+ int (center_filter [1 ] - filter_height / 2 ))
50+ bottom_right = (int (center_filter [0 ] + filter_width / 2 ),
51+ int (center_filter [1 ] + filter_height / 2 ))
52+
53+ # Adding the new filter
54+ filtery = cv2 .resize (filter_image1 , (filter_width , filter_height ))
55+ filtery_gray = cv2 .cvtColor (filtery , cv2 .COLOR_BGR2GRAY )
56+ _ , filter1 = cv2 .threshold (filtery_gray , 25 , 255 , cv2 .THRESH_BINARY_INV )
57+
58+ filter_area = image [top_left [1 ]: top_left [1 ] + filter_height ,
59+ top_left [0 ]: top_left [0 ] + filter_width ]
60+ filter_area_no_filter = cv2 .bitwise_and (filter_area , filter_area , mask = filter1 )
61+ final_filter = cv2 .add (filter_area_no_filter , filtery )
62+
63+ image [top_left [1 ]: top_left [1 ] + filter_height ,
64+ top_left [0 ]: top_left [0 ] + filter_width ,:] = final_filter
65+ print ("filter1" )
66+ except :
67+ print ("except" )
68+ return image
9169 # cv2.imshow("Frame", image)
9270 # key = cv2.waitKey(0)
9371
0 commit comments