Saltar al contenido

Cómo crear mejor una nueva imagen a partir de imágenes existentes en openCV

Solución:

Cuando las imágenes se leen en la API Python de OpenCV, obtienes matrices Numpy. Numpy tiene vstack() y hstack() funciones, que puede utilizar para apilar matrices (imágenes) vertical y horizontalmente.

Abramos dos imágenes con OpenCV:

import cv2
import numpy as np

knight = cv2.imread('knight.jpg', cv2.IMREAD_GRAYSCALE)

ingrese la descripción de la imagen aquí

Para usar el apilamiento en numpy, hay restricciones en las dimensiones de la imagen según el eje de apilado (vertical / horizontal), por lo que para esta imagen, usaré cv2.resize() para conseguir las dimensiones correctas

queen = cv2.imread('queen.jpg', cv2.IMREAD_GRAYSCALE)
queen = cv2.resize(queen, (525, 700))

ingrese la descripción de la imagen aquí

Hagamos una primera columna apilando 2 Caballeros

col_1 = np.vstack([knight, knight]) # Simply put the images in the list
                                    # I've put 2 knights as example

ingrese la descripción de la imagen aquí

Ahora hagamos una segunda columna con 2 reinas.

col_2 = np.vstack([queen, queen])

Juntemos esas dos columnas, pero esta vez usaremos hstack() para eso

collage = np.hstack([col_1, col_2]

ingrese la descripción de la imagen aquí

Et voila, un collage de 2 x 2 que puedes adaptar a tus necesidades. Tenga en cuenta que las imágenes pasadas en el apilamiento deben ser idénticas o cualquier cosa, puede pasar cualquier lista de imágenes, siempre que respete las dimensiones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *