función detector de lentes
**Detector de Lentes en Python** ===================================== A continuación, te presento una función en Python que detecta si una imagen contiene lentes. Esta función utiliza la biblioteca OpenCV para procesar la imagen y detectar los contornos. **Requisitos** --------------- * Python 3.x * OpenCV 4.x * NumPy **Código** ```python import cv2 import numpy as np def detectar_lentes(imagen): """ Detecta si una imagen contiene lentes. Args: imagen (str): Ruta a la imagen. Returns: bool: True si la imagen contiene lentes, False en caso contrario. """ # Cargar la imagen img = cv2.imread(imagen) # Convertir la imagen a escala de grises gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Aplicar umbralización para mejorar la detección de contornos _, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) # Detectar contornos contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # Iterar sobre los contornos for contour in contours: # Calcular el área del contorno area = cv2.contourArea(contour) # Calcular el perímetro del contorno perimeter = cv2.arcLength(contour, True) # Calcular el ratio de área a perímetro ratio = area / perimeter # Si el ratio es mayor que 0.5, consideramos que es una lente if ratio > 0.5: return True # Si no se encuentra ninguna lente, devolver False return False ``` **Ejemplo de uso** ```python imagen = "ruta_a_la_imagen.jpg" resultado = detectar_lentes(imagen) if resultado: print("La imagen contiene lentes.") else: print("La imagen no contiene lentes.") ``` **Nota** * La función `detectar_lentes` devuelve `True` si la imagen contiene lentes y `False` en caso contrario. * La función utiliza un umbral de 0.5 para determinar si un contorno es una lente. Puedes ajustar este valor según tus necesidades. * La función asume que la imagen está en la ruta especificada en la variable `imagen`. Asegúrate de reemplazar esta ruta con la ruta real a la imagen.