Skip to content

Commit 31a19e9

Browse files
Create capyture.py
1 parent eefa72e commit 31a19e9

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

capyture.py

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import cv2
2+
import dlib
3+
import numpy as np
4+
5+
6+
camera = True
7+
cap = cv2.VideoCapture(0)
8+
9+
def empty(a):
10+
pass
11+
cv2.namedWindow("BGR")
12+
cv2.resizeWindow("BGR",640,240)
13+
cv2.createTrackbar("Blue","BGR",0,255,empty)
14+
cv2.createTrackbar("Green","BGR",0,255,empty)
15+
cv2.createTrackbar("Red","BGR",0,255,empty)
16+
def create(img, points,masked = False, cropped = True):
17+
if masked:
18+
mask = np.zeros_like(img)
19+
mask = cv2.fillPoly(mask,[points],(255,255,255))
20+
# cv2.imshow("mask",mask)
21+
img = cv2.bitwise_and(img,mask)
22+
if cropped:
23+
b = cv2.boundingRect(points)
24+
x,y,w,h = b
25+
imgCrop = img[y:y+h,x:x+w]
26+
imgCrop = cv2.resize(imgCrop,(0,0),None,5,5)
27+
return imgCrop
28+
else:
29+
return mask
30+
detector = dlib.get_frontal_face_detector()
31+
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
32+
while True:
33+
if camera: success , img = cap.read()
34+
else: print("Camera not working")
35+
img = cv2.resize(img,(0,0), None,1,1)
36+
imgOriginal = img.copy()
37+
imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
38+
faces = detector(imgGray)
39+
for face in faces:
40+
x1,y1 = face.left(),face.top()
41+
x2,y2 = face.right(),face.bottom()
42+
# imgOri = cv2.rectangle(imgOriginal,(x1,y1),(x2,y2),(0,255,0),1)
43+
landmarks = predictor(imgGray,face)
44+
mypoints = []
45+
for n in range(0,68):
46+
x = landmarks.part(n).x
47+
y = landmarks.part(n).y
48+
mypoints.append([x,y])
49+
# cv2.circle(imgOriginal,(x,y),2,(0,0,255),3)
50+
# cv2.putText(imgOriginal,str(n),(x,y-10),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,255,0),1)
51+
mypoints = np.array(mypoints)
52+
lips = create(img,mypoints[48:61],masked=True,cropped=False)
53+
# cv2.imshow("Lip",lips)
54+
imgColor = np.zeros_like(lips)
55+
a = cv2.getTrackbarPos("Blue","BGR")
56+
q = cv2.getTrackbarPos("Green","BGR")
57+
w = cv2.getTrackbarPos("Red","BGR")
58+
imgColor[:] = a,q,w
59+
# cv2.imshow("Color",imgColor)
60+
imgColor = cv2.bitwise_and(lips,imgColor)
61+
imgColor = cv2.GaussianBlur(imgColor,(7,7),10)
62+
# imgOriginal_Image = cv2.cvtColor(imgOriginal,cv2.COLOR_BGR2GRAY)
63+
# imgOriginal_Image = cv2.cvtColor(imgOriginal_Image,cv2.COLOR_GRAY2BGR)
64+
imgColor =cv2.addWeighted(imgOriginal,1,imgColor,0.4,0)
65+
cv2.imshow("BGR",imgColor)
66+
# cv2.imshow("Image",imgOriginal)
67+
key = cv2.waitKey(1)
68+
if key == ord("q"):
69+
break
70+
cv2.destroyAllWindows()

0 commit comments

Comments
 (0)