在下面的示例中,白色背景上按顺序有三个图像。如何使用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)
暂无答案!
目前还没有任何答案,快来回答吧!