import tensorflow as tf
import numpy as np
import cv2
def flip(face, landmark):
"""
flip face
"""
face_flipped_by_x = cv2.flip(face, 1)#将人脸框水平翻转,参数为0时是垂直翻转,为-1时是水平垂直翻转
landmark_ = np.asarray([(1-x, y) for (x, y) in landmark])
landmark_[[0, 1]] = landmark_[[1, 0]]#left eye<->right eye 左右眼坐标的互换
landmark_[[3, 4]] = landmark_[[4, 3]]#left mouth<->right mouth 左右嘴角坐标的互换
cv2.imshow("face_flipped_by_x", face_flipped_by_x)
print("landmark_:%s"%landmark_)
return (face_flipped_by_x, landmark_)#
img = cv2.imread("IOU.jpg",1)
landmark = np.array([[10,10],[50,10],[35,20],[10,50],[50,50]])
img = cv2.resize(img,(300,250))
cv2.circle(img,(10,10),2,(0,0,255),-1)
cv2.circle(img,(50,10),2,(0,0,255),-1)
cv2.circle(img,(35,20),2,(0,0,255),-1)
cv2.circle(img,(10,50),2,(0,0,255),-1)
cv2.circle(img,(50,50),2,(0,0,255),-1)
flip(img,landmark)
cv2.imshow("img",img)
cv2.waitKey()
此时landmark 变为负值不是很理解,图像翻转后值点位置应该还是为正值吧。