python - skimage - Cosiendo fotos juntas
skimage python install (3)
Entonces, para este proyecto en el que estoy trabajando, tengo 2 fotos. Estas dos fotos deben coserse juntas, una en la parte superior y otra en la inferior, y luego podrás ver la imagen completa. ¿Alguna idea sobre qué módulo debería usar para hacer esto?
Este es un código de la visión de computadora de Jan Erik Solems con el libro de pitón; probablemente pueda editarlo para que se ajuste a sus necesidades superiores e inferiores
def stitchImages(im1,im2):
''''''Takes 2 PIL Images and returns a new image that
appends the two images side-by-side. ''''''
# select the image with the fewest rows and fill in enough empty rows
rows1 = im1.shape[0]
rows2 = im2.shape[0]
if rows1 < rows2:
im1 = concatenate((im1,zeros((rows2-rows1,im1.shape[1]))), axis=0)
elif rows1 > rows2:
im2 = concatenate((im2,zeros((rows1-rows2,im2.shape[1]))), axis=0)
# if none of these cases they are equal, no filling needed.
return concatenate((im1,im2), axis=1)
La biblioteca de imágenes de pitón se comerá esa tarea para el desayuno.
Consulte el tutorial en particular la sección "Cortar, pegar y combinar imágenes" para obtener ayuda relevante.
Para un esquema aproximado, cargue ambas imágenes con Image.open
, descubra qué tan grande será la imagen de salida usando el atributo de size
y alguna adición, cree la imagen de salida con Image.new
y luego use el método de paste
para pasar las dos imágenes originales en.
Aquí hay una muestra de código usando Pillow . Espero que ayude a alguien!
from PIL import Image
def merge_images(file1, file2):
"""Merge two images into one, displayed side by side
:param file1: path to first image file
:param file2: path to second image file
:return: the merged Image object
"""
image1 = Image.open(file1)
image2 = Image.open(file2)
(width1, height1) = image1.size
(width2, height2) = image2.size
result_width = width1 + width2
result_height = max(height1, height2)
result = Image.new(''RGB'', (result_width, result_height))
result.paste(im=image1, box=(0, 0))
result.paste(im=image2, box=(width1, 0))
return result