Я пытаюсь создать приложение подкачки лица, для которого у меня есть код определения ориентира лица.Но, поскольку я новичок в мире программирования, я сделал свой код длиннее, чем нужно.Я знаю, есть какой-то короткий способ сделать это, я просто не знаю как.Так.вот мой код:
predictor_path = "C:\\Users\\G7K4\\Desktop\\FinalFaceSwap\\shape_predictor_68_face_landmarks.dat"
filepath1 = "C:\\Users\\G7K4\\Desktop\\FinalFaceSwap\\Image\\nil.jpg"
image1 = cv2.imread(filepath1)
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(predictor_path)
dets1 = detector(image1)
for k, d in enumerate(dets1):
shape = predictor(img1, d)
#Detect 68 facial landmark points
vec = np.empty([68, 2], dtype = int)
for b in range(68):
vec[b][0] = shape.part(b).x
vec[b][1] = shape.part(b).y
#write the detected file in text file
with open("Model1.txt","w") as file:
for i in range(len(vec)):
outer=""
outer += str(vec[i])
file.write(outer)
file.write("\n")
#read the text file and remove the brackets
with open("Model1.txt","r") as my_file:
text=my_file.read()
text= text.replace("[","")
text= text.replace("]","")
#again write the file.
with open("Model1.txt","w") as file:
file.write(text)
#function for reading points from text file
def readPoints(path) :
# Create an array of points.
points = [];
# Read points
with open(path) as file :
for line in file :
x, y = line.split()
points.append((int(x), int(y)))
return points
Итак, здесь мне нужно обнаружить ориентиры на лице и прочитать их напрямую, чтобы их можно было использовать для смены лица.Или, если это невозможно, мне нужно определить ориентиры на лице и сразу записать их в текстовый файл без скобок, чтобы мне не приходилось читать и записывать текстовый файл дважды и снимать скобки.