Estoy usando la API Cloud Vision de Google para detectar rostros y puntos de referencia dentro de ellos (como ojos, nariz, etc.).
Si se gira la cara, me gustaría corregir la rotación para que la cara y sus puntos de referencia se coloquen verticalmente dentro de un elemento de canvas .
Google proporciona las coordenadas de los puntos de referencia con su origen en la parte superior izquierda y las propiedades de roll , tilt y pan en grados:
"landmarks": [ { "position": { "x": 371.52585, "y": 437.1983, "z": 0.0012220144 }, "type": "LEFT_EYE" }, ... Puedo corregir la rotación de la imagen convirtiendo la propiedad de rotación en radianes usando roll ctx.rotate(degrees*Math.PI/180) , pero ¿cómo giro las coordenadas para que coincidan con la imagen girada?
Mi objetivo es tener la imagen y las coordenadas correspondientes de la siguiente manera:
Salud
Puedo ver dos formas:
o
Usa Matemáticas:
x1 = x0 * cos(rollo)
y1 = y0 * sin(rollo)