Tutorial del Script etiquetar.py

Ver Código Fuente (Python)

¿Qué hace el script?

El script etiquetar.py es una aplicación de escritorio desarrollada con PyQt5 que permite visualizar y etiquetar imágenes almacenadas en una base de datos MongoDB. Específicamente, se utiliza para:

La aplicación es útil para tareas de organización y catalogación de imágenes, especialmente en contextos donde se necesita clasificar o indexar contenido visual con metadatos como nombres de personas.

¿Cómo funciona?

El script se ejecuta desde la línea de comandos con python3 etiquetar.py y abre una ventana gráfica azul oscura (tema personalizado). A continuación, se explica paso a paso cómo opera la aplicación:

1. Conexión a la base de datos

Al iniciar, el script se conecta a una base de datos MongoDB local (localhost, puerto 27017). Se conecta a la base de datos llamada 'album' y a la colección 'imagenes_2'. Si no encuentra imágenes en la base de datos, muestra un mensaje de error y se cierra.

# Ejemplo de conexión
self.client = MongoClient('localhost', 27017)
self.db = self.client['album']
self.collection = self.db['imagenes_2']

2. Carga de imágenes

El script consulta todas las imágenes de la colección. Cada imagen debe tener al menos un campo 'ruta' (ubicación del archivo de imagen) y opcionalmente 'personas' (lista de nombres de personas ya etiquetadas).

Al cargar cada imagen, la dimensión se ajusta a un ancho de 515 píxeles manteniendo la proporción de aspecto.

3. Interfaz de usuario

La ventana principal tiene:

Botones principales:

4. Etiquetado de imágenes

Para etiquetar una imagen:

  1. Selecciona una persona del menú desplegable (con todos los nombres únicos disponibles) y haz clic en "Añadir Seleccionada".
  2. O ingresa manualmente un nombre y haz clic en "Añadir Manual".
  3. Las etiquetas se guardan automáticamente en la base de datos MongoDB.

El menú desplegable se actualiza dinámicamente con nuevas personas agregadas.

5. Navegación y control

Usa los botones "Anterior" y "Siguiente" para moverte por las imágenes. Si intentas ir más allá de la primera o última imagen, se muestra un mensaje informativo.

Para eliminar una imagen:

  1. Haz clic en "Eliminar Imagen".
  2. Confirma la acción en el cuadro de diálogo.
  3. El archivo se borra del disco y el registro de la base de datos se elimina.

6. Cierre de la aplicación

Cierra la ventana para salir. Ningún cambio queda pendiente de guardar, ya que los etiquetados se actualizan en tiempo real en la base de datos.

Requisitos y configuración

Dependencias

Instala las dependencias con pip install PyQt5 pymongo.

Estructura de la base de datos

La colección 'imagenes_2' debe contener documentos con la siguiente estructura aproximada:

{
    "_id": ObjectId,
    "ruta": "/ruta/a/la/imagen.jpg",
    "nombre": "nombrerelativo.jpg",
    "personas": ["Persona1", "Persona2"]
}

El campo 'personas' es una lista de strings con los nombres. Si no existe, se crea automáticamente al agregar la primera etiqueta.

Errores comunes

Ejemplos de uso

Ejecuta el script:

python3 etiquetar.py

En la interfaz:

Este tutorial cubre los aspectos básicos. Para más detalles, revisa el código fuente comentado.