借助NumPy和Python-OpenCV(CV2)创建图像拼贴

使用的模块:在本文中,我们将使用NumPy和python-opencv(cv2)库。

NumPy:

Numpy是一个python库,它将帮助我们基于科学计算来解决问题并存储相同数据类型的数据。 

下载NumPy:

  • 通用方式:pip安装NumPy

  • Pycharm用户:转到项目解释器->单击+按钮->下载NumPy。

python-opencv(cv2):

python-opencv(cv2)(开源计算机视觉)是一个python库,它将帮助我们解决与计算机视觉有关的问题。

下载python-opencv(cv2)

  • 通用方式:pip install python-opencv

  • Pycharm用户:转到项目解释器->单击+按钮->下载模块。

我们将在本文中实际做什么?

在本文中,我们将尝试在NumPy函数的帮助下合并图像,并且将使用python-opencv(cv2)读取和获取图像数据。我们将创建一个水平的图像堆栈,然后,将它们合并为一个垂直的图像堆栈。

注意:我们仅拍摄了4张拼贴图像。

让我们看看我们将在本文中使用的一些功能:

  1. np.hstack([<image1>,<image2>]):将创建一个水平的图像堆栈。

  2. np.vstack([<image1>,<image2>]):将创建垂直的图像堆栈。

  3. cv2.resize(<image>,(<<我们想要的区域>)):它将调整图像的大小。

码:

# 导入模块
import cv2
import numpy as np

# 阅读所有图像
# 我们将只拍摄4张图像
image1=cv2.imread("index1.png")
image2=cv2.imread("index2.jpeg")
image3=cv2.imread("index3.jpeg")
image4=cv2.imread("images.png")

# 使所有图像大小相同 
#所以我们将使用调整大小功能
image1=cv2.resize(image1,(200,200))
image2=cv2.resize(image2,(200,200))
image3=cv2.resize(image3,(200,200))
image4=cv2.resize(image4,(200,200))

# 现在我们将如何将图像与其他图像附加在一起
# 我们将创建一个水平的图像堆栈
# 然后我们将其添加到垂直堆栈中
# 令水平对为(image1,image2)
# 和(image3,image4)
# 我们将使用numpy堆栈函数
Horizontal1=np.hstack([image1,image2])
Horizontal2=np.hstack([image3,image4])

# 现在水平附件完成了
# noe垂直附件
Vertical_attachment=np.vstack([Horizontal1,Horizontal2])

# 显示最后的附件
cv2.imshow("Final Collage",Vertical_attachment)
cv2.waitKey(0)cv2.destroyAllWindows()

输出:

图像拼贴

这是我们创建的最终图像。通过这种方式,我们可以创建拼贴。