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:
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:
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
:
{% 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:
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.