我想用cv2把两张不同大小的图片粘贴到同一个背景上。
我发现代码,下面的例子,只能合并相等大小的图像,这是一个限制.
import cv2 as cv
img_0 = cv.imread("0.tiff")
img_1 = cv.imread("1.tiff")
bg_img = cv.imread("5120x2048 black.png")
bg_img[0:0+img_0.shape[0], 0:0+img_0.shape[1]] = img_0
bg_img[0:0+img_1.shape[0], 512*4:512*4+img_1.shape[1]] = img_1
cv.imwrite("bg_img.tiff", bg_img)
从上面的代码,如果我设置:
bg_img[0:0+img_1.shape[0]+10, 512*4:512*4+img_1.shape[1]] = img_1
它将生成一条错误消息:
ValueError: could not broadcast input array from shape (512,512,3) into shape (522,512,3)
我已经准备了3张图片,我希望能够设置坐标,将2张图片放置在白色背景上,使所有3张图片形成一个单一的图像。
[Star](https://i.stack.imgur.com/RnY7D.png)
[Triangle](https://i.stack.imgur.com/yDt6C.png)
[White background](https://i.stack.imgur.com/L5etY.png)
星星图像为100x100像素^2,三角形图像为200x200像素^2,白色背景为700x700像素^2。
比如说,坐标(0,0)是星形的左上角起点,坐标(250,250)是三角形的左上角起点。
非常感谢。
1条答案
按热度按时间qgzx9mmu1#
Output image