如何将图像按顺序放在另一个图像上?

13z8s7eq  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(172)

在下面的示例中,白色背景上按顺序有三个图像。如何使用cv2或pil或任何工作代码在python中实现这一点。
谢谢您。

图像必须根据纵横比对齐。
输入=3个带背景的图像,
输出=如上图所示的单个图像
更新!!!!
每个循环只有一个图像被粘贴在背景上。

from PIL import Image
import cv2
import numpy as np

d=0
folder = 'save'
image_paths = []
for path, subdirs, files in os.walk(folder):
    for filename in files:
        f = os.path.join(path, filename)
        if f.endswith(".jpg"):
            image_paths.append(f)
        if f.endswith(".png"):
            image_paths.append(f)
        if f.endswith(".JPG"):
            image_paths.append(f)
        if f.endswith(".PNG"):
            image_paths.append(f)  
        if f.endswith(".jpeg"):
            image_paths.append(f)    
        if f.endswith(".JPEG"):
            image_paths.append(f)

for image in image_paths:
    image = cv2.imread(image)
    r = 720.0 / image.shape[1]
    dim = (720, int(image.shape[0] * r))

    resized = cv2.resize(image, dim)
    #resized = resized[:,:,0]
    h, w, z = resized.shape

    back = cv2.imread('template.jpg')

    yoff = round((1080-h)/4)
    xoff = round((1920-w)/6)

    d+=1
    result = back.copy()
    result[yoff:yoff+h, xoff:xoff+w] = resized
    #result = np.stack((result)*3)
    cv2.imwrite('saves/resized_centered_%d.jpg'%d,  result)

所以输入中的多个图像被粘贴到一个背景中,但问题是,我想要三个图像粘贴到背景中,而不是按顺序粘贴一个图像。
注意:上面的图片只是代表我的帮助!!!你可以告诉我任何可能的除了这个!!!
这行代码将图像移向左上角并正确放置,但同样地,我需要另外两个图像位于右上角和底部。

yoff = round((1080-h)/4)
xoff = round((1920-w)/6)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题