Integración de Django y OpenCV: Tutorial completo

Integración de Django y OpenCV: Tutorial completo

En este tutorial, aprenderemos cómo integrar Django y OpenCV para crear una aplicación web que pueda realizar tareas de visión artificial.

Requisitos

  • Python 3.8 o superior
  • Django 3.2 o superior
  • OpenCV 4.5.0 o superior
  • Pipenv

Instalación

Primero, debemos instalar las dependencias necesarias. Podemos hacerlo usando Pipenv:

pipenv install django opencv

Creación del proyecto Django

Ahora, podemos crear un nuevo proyecto Django:

django-admin startproject myproject

Configuración de OpenCV

Para que Django pueda usar OpenCV, debemos agregarlo a la configuración del proyecto. En el archivo settings.py, agrega la siguiente línea a la sección INSTALLED_APPS:

'opencv',

También debemos agregar la siguiente línea a la sección ALLOWED_HOSTS:

'localhost',

Creación de la aplicación

Ahora, podemos crear una nueva aplicación para nuestra aplicación web:

python manage.py startapp myapp

Agregar la dependencia de OpenCV a la aplicación

En el archivo myapp/settings.py, agrega la siguiente línea a la sección INSTALLED_APPS:

'opencv',

Importar OpenCV en la aplicación

En el archivo myapp/views.py, importamos OpenCV:

Python
from django.shortcuts import render
from opencv import cv2

Creación de la vista

En la vista, cargamos una imagen de la computadora y la mostramos en el navegador:

Python
def index(request):
    # Cargamos la imagen
    image = cv2.imread('image.jpg')

    # Mostramos la imagen en el navegador
    return render(request, 'index.html', {'image': image})

Creación de la plantilla

En la plantilla, mostramos la imagen usando la etiqueta img:

HTML
{% extends 'base.html' %}

{% block content %}
    <img src="{{ image }}" alt="Imagen">
{% endblock %}

Ejecutando la aplicación

Ahora, podemos ejecutar la aplicación:

python manage.py runserver

La aplicación se ejecutará en http://localhost:8000.

Agregar más funcionalidad

Una vez que tengamos la base de nuestra aplicación, podemos agregar más funcionalidad. Por ejemplo, podemos agregar la capacidad de realizar tareas de visión artificial en la imagen.

Ejemplo: detección de caras

Para detectar caras en una imagen, podemos usar el siguiente código:

Python
import cv2

def index(request):
    # Cargamos la imagen
    image = cv2.imread('image.jpg')

    # Detectamos las caras
    faces = cv2.CascadeClassifier('haarcascade_frontalface_default.xml').detectMultiScale(image)

    # Mostramos las caras en el navegador
    for (x, y, w, h) in faces:
        cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 2)

    return render(request, 'index.html', {'image': image})

Este código usa un clasificador Haar Cascade para detectar caras en la imagen. El clasificador se puede descargar del sitio web de OpenCV.

Conclusión

En este tutorial, aprendimos cómo integrar Django y OpenCV para crear una aplicación web que pueda realizar tareas de visión artificial.