Para concatenar imágenes vertical y horizontalmente con Python, la biblioteca cv2 viene con dos funciones como:
- hconcat(): Se usa como cv2.hconcat() para concatenar imágenes horizontalmente. Aquí h significa horizontal.
- vconcat(): Se usa como cv2.vconcat() para concatenar imágenes verticalmente. Aquí v significa vertical.
Implementación usando hconcat() y vconcat() en Arrays
Se pasa una lista de imágenes como una array n-dimensional en la que las imágenes de la lista se concatenan vertical u horizontalmente. Las imágenes con diferentes tamaños se pueden cambiar de tamaño. Las siguientes formas de concatenar las imágenes se explican debajo del código como:
Python3
# import cv2 library import cv2 # read the images img1 = cv2.imread('sea.jpg') img2 = cv2.imread('man.jpeg')
Concatenar verticalmente: cv2.vconcat() se usa para combinar imágenes del mismo ancho verticalmente.
Python3
# vertically concatenates images # of same width im_v = cv2.vconcat([img1, img1]) # show the output image cv2.imshow('sea_image.jpg', im_v)
Producción:
Concatenar horizontalmente: cv2.hconcat() se usa para combinar imágenes de la misma altura horizontalmente.
Python3
# horizontally concatenates images # of same height im_h = cv2.hconcat([img2, img2]) # show the output image cv2.imshow('man_image.jpeg', im_h)
Producción:
Concatenar imágenes de diferentes anchos verticalmente: Se utiliza para combinar imágenes de diferentes anchos. aquí la forma[0] representa la altura y la forma[1] representa el ancho.
Python3
# define a function for vertically # concatenating images of different # widths def vconcat_resize(img_list, interpolation = cv2.INTER_CUBIC): # take minimum width w_min = min(img.shape[1] for img in img_list) # resizing images im_list_resize = [cv2.resize(img, (w_min, int(img.shape[0] * w_min / img.shape[1])), interpolation = interpolation) for img in img_list] # return final image return cv2.vconcat(im_list_resize) # function calling img_v_resize = vconcat_resize([img1, img2, img1]) # show the output image cv2.imwrite('vconcat_resize.jpg', img_v_resize)
Producción:
Concatenar imágenes de diferentes alturas horizontalmente: Se utiliza para combinar imágenes de diferentes alturas.
Python3
# define a function for horizontally # concatenating images of different # heights def hconcat_resize(img_list, interpolation = cv2.INTER_CUBIC): # take minimum hights h_min = min(img.shape[0] for img in img_list) # image resizing im_list_resize = [cv2.resize(img, (int(img.shape[1] * h_min / img.shape[0]), h_min), interpolation = interpolation) for img in img_list] # return final image return cv2.hconcat(im_list_resize) # function calling img_h_resize = hconcat_resize([img1, img2, img1]) # show the Output image cv2.imshow('hconcat_resize.jpg', img_h_resize)
Producción:
Concatene imágenes del mismo tamaño vertical y horizontalmente: las imágenes se pueden combinar usando cv2.hconcat() y cv2.vconcat() en forma de mosaico usando una lista 2D.
Python3
# define a function for vertically # concatenating images of the # same size and horizontally def concat_vh(list_2d): # return final image return cv2.vconcat([cv2.hconcat(list_h) for list_h in list_2d]) # image resizing img1_s = cv2.resize(img1, dsize = (0,0), fx = 0.5, fy = 0.5) # function calling img_tile = concat_vh([[img1_s, img1_s, img1_s], [img1_s, img1_s, img1_s], [img1_s, img1_s, img1_s]]) # show the output image cv2.imshow('concat_vh.jpg', img_tile)
Producción:
Concatenar imágenes de diferentes tamaños en mosaicos verticales y horizontales: las funciones de cambio de tamaño y concatenación definidas anteriormente se utilizan para combinar imágenes de diferentes tamaños en mosaicos verticales y horizontales.
Python3
# define a function for concatenating # images of different sizes in # vertical and horizontal tiles def concat_tile_resize(list_2d, interpolation = cv2.INTER_CUBIC): # function calling for every # list of images img_list_v = [hconcat_resize(list_h, interpolation = cv2.INTER_CUBIC) for list_h in list_2d] # return final image return vconcat_resize(img_list_v, interpolation=cv2.INTER_CUBIC) # function calling im_tile_resize = concat_tile_resize([[img1], [img1, img2, img1, img2, img1], [img1, img2, img1]]) # show the image cv2.imshow('concat_tile_resize.jpg', im_tile_resize)
Producción:
Publicación traducida automáticamente
Artículo escrito por divyanshu17bec1138 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA