Integración de OpenCV con Tkinter en Python
Introducción
OpenCV es una biblioteca de código abierto para el procesamiento de imágenes y visión artificial. Tkinter es un módulo de Python para la creación de interfaces gráficas de usuario (GUI). En este tutorial, veremos cómo integrar OpenCV con Tkinter para crear una aplicación GUI que pueda mostrar imágenes y realizar operaciones de procesamiento de imágenes.
Requisitos
Para seguir este tutorial, necesitará tener instalado Python 3.6 o superior. También necesitará instalar la biblioteca OpenCV. Puede instalar OpenCV usando el administrador de paquetes de su distribución de Linux o macOS. En Windows, puede instalar OpenCV usando el instalador oficial.
Ejemplo simple
En este ejemplo, crearemos una aplicación GUI simple que muestra una imagen.
import tkinter as tk
import cv2
def show_image(image):
# Crea una ventana de Tkinter
root = tk.Tk()
# Crea un widget Canvas para mostrar la imagen
canvas = tk.Canvas(root, width=image.shape[1], height=image.shape[0])
canvas.pack()
# Dibuja la imagen en el Canvas
canvas.create_image((0, 0), image=image)
# Muestra la ventana
root.mainloop()
# Lee la imagen
image = cv2.imread("image.jpg")
# Muestra la imagen
show_image(image)
Este código crea una ventana de Tkinter con un widget Canvas. El widget Canvas se usa para mostrar la imagen. El método create_image()
del widget Canvas se usa para dibujar la imagen en el lienzo.
Para ejecutar este código, guarde el código en un archivo llamado main.py
y ejecute el siguiente comando:
python main.py
Esto abrirá una ventana de Tkinter que muestra la imagen.
Operaciones de procesamiento de imágenes
Una vez que haya integrado OpenCV con Tkinter, puede realizar operaciones de procesamiento de imágenes en las imágenes que se muestran en la GUI. Por ejemplo, puede usar OpenCV para rotar, escalar o cambiar el color de las imágenes.
En el siguiente ejemplo, usaremos OpenCV para rotar una imagen 90 grados en sentido antihorario.
import tkinter as tk
import cv2
def show_image(image):
# Crea una ventana de Tkinter
root = tk.Tk()
# Rota la imagen 90 grados en sentido antihorario
image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)
# Crea un widget Canvas para mostrar la imagen
canvas = tk.Canvas(root, width=image.shape[1], height=image.shape[0])
canvas.pack()
# Dibuja la imagen en el Canvas
canvas.create_image((0, 0), image=image)
# Muestra la ventana
root.mainloop()
# Lee la imagen
image = cv2.imread("image.jpg")
# Muestra la imagen
show_image(image)
Este código rota la imagen 90 grados en sentido antihorario antes de mostrarla en la GUI.
Conclusión
En este tutorial, vimos cómo integrar OpenCV con Tkinter para crear una aplicación GUI que pueda mostrar imágenes y realizar operaciones de procesamiento de imágenes.
Para obtener más información sobre OpenCV, puede consultar la documentación oficial: https://docs.opencv.org/master/.
Referencias
- OpenCV: https://docs.opencv.org/master/
- Tkinter: https://docs.python.org/3/library/tkinter.html