# prompt: Dada una imagen referenciada mediante una url, muestra los landmarks de las caras que aparezcan en ellas.
import numpy as np
# Instalar las librerías necesarias
!pip install -q mediapipe opencv-python
# Importar las librerías
import cv2
import mediapipe as mp
import urllib.request
from google.colab.patches import cv2_imshow
# Inicializar el detector de caras
mp_face_mesh = mp.solutions.face_mesh
face_mesh = mp_face_mesh.FaceMesh(static_image_mode=True, max_num_faces=2)
# Definir la URL de la imagen
url = 'https://previews.123rf.com/images/warrengoldswain/warrengoldswain1610/warrengoldswain161000017/64945843-la-colecci%C3%B3n-completa-de-las-caras-reales-gente-divertida-que-hace-expresiones-tontas.jpg'
# Leer la imagen desde la URL
with urllib.request.urlopen(url) as response:
image = response.read()
# Convertir la imagen a un array NumPy
image = cv2.imdecode(np.frombuffer(image, np.uint8), -1)
# Detectar los landmarks de las caras
results = face_mesh.process(image)
# Dibujar los landmarks en la imagen
if results.multi_face_landmarks:
for face_landmarks in results.multi_face_landmarks:
mp.solutions.drawing_utils.draw_landmarks(
image=image,
landmark_list=face_landmarks,
connections=mp_face_mesh.FACEMESH_TESSELATION,
landmark_drawing_spec=None,
connection_drawing_spec=mp.solutions.drawing_styles.get_default_face_mesh_tesselation_style())
# Mostrar la imagen con los landmarks
cv2_imshow(image)
CAMBIA EL URL DE FRANCISCO PUENTES, DA ERROR