我有几个图像,我想在一个新图像中聚合,每列8张图像,每行5张图像与Python中的openCV并排。
奇怪的是,我没有找到直接解决这个问题的答案。根据我对openCV的备用知识,现在我将计算现有图像应复制到的图像的宽度和高度,使用这些图像创建一个numpy数组,并将Pinterest的相应区域的值更改为每个图像的值。
此程序是否可以正常工作,更重要的是,没有一个更简单的解决方案来解决这个尚未找到的问题吗?
在OpenCV的Python API中读取图像时,将获得Numpy数组。Numpy具有vstack()
和hstack()
函数,可用于垂直和水平堆叠数组(图像)。
让我们用OpenCV打开两个图像:
import cv2
import numpy as np
knight = cv2.imread('knight.jpg', cv2.IMREAD_GRAYSCALE)
要在numpy中使用堆叠,根据堆叠轴(垂直/水平),图像尺寸会有限制,因此对于此图像,我将使用cv2.resize()
正确的尺寸
queen = cv2.imread('queen.jpg', cv2.IMREAD_GRAYSCALE)
queen = cv2.resize(queen, (525, 700))
让我们堆叠2个Knights作为第一列
col_1 = np.vstack([knight, knight]) # Simply put the images in the list
# I've put 2 knights as example
现在让我们用2个皇后区做第二列
col_2 = np.vstack([queen, queen])
让我们把这两列在一起,但这次我们将使用hstack()
该
collage = np.hstack([col_1, col_2]
Et voila,一个2 x 2的拼贴画,您可以根据需要进行调整。请注意,堆叠中传递的图像确实必须相同或任何其他内容,您可以传递任何图像列表,只要遵守尺寸即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句