matthewearl / faceswap

Python script to put facial features from one face onto another
MIT License
1.4k stars 496 forks source link

How to show the keypoints? #9

Open Rich700000000000 opened 8 years ago

Rich700000000000 commented 8 years ago

In faceswap.py there is this chunk of code:

def annotate_landmarks(im, landmarks):
    im = im.copy()
    for idx, point in enumerate(landmarks):
        pos = (point[0, 0], point[0, 1])
        cv2.putText(im, str(idx), pos,
                    fontFace=cv2.FONT_HERSHEY_SCRIPT_SIMPLEX,
                    fontScale=0.4,
                    color=(0, 0, 255))
        cv2.circle(im, pos, 3, color=(0, 255, 255))
    return im

Which I assume was used to generate like this image. However, the code was never used and despite my attempts I can't seem to get it working. Can you show me how it worked?

brycepg commented 8 years ago

You can apply the annotation directly to the source images after read_im_and_get_landmarks

im1, landmarks1 = read_im_and_landmarks(sys.argv[1])
im2, landmarks2 = read_im_and_landmarks(sys.argv[2])
im1_annotated = annotate_landmarks(im1, landmarks1)
im2_annotated = annotate_landmarks(im2, landmarks2)
cv2.imwrite('output-src1-annotate.jpg', im1_annotated)
cv2.imwrite('output-src2-annotate.jpg', im2_annotated)

output-src2-annotate

Rich700000000000 commented 8 years ago

Cool, thanks.