numpy数组做图片拼接的实现(concatenate、vstack、hstack)

  • Post category:Python

下面是关于Numpy数组做图片拼接的实现的详细攻略。

1. concatenate函数

在Numpy中,可以使用concatenate函数将多个数组沿着指定的轴拼接在一起。concatenate函数的语法如下:

numpy.concatenate((a1, a2, ...), axis=0)

其中,a1、a2、…表示要拼接的数组,axis要沿着哪个轴拼接。如果不指定axis参数,则默认将数组展开成一维数组后进行拼接。

以下是使用concatenate函数的示例:

import numpy as np
from PIL import Image

# 读取两张图片
img1 = np.array(Image.open('image1.jpg'))
img2 = np.array(Image.open('image2.jpg'))

# 将两张图片沿着水平方向拼接
new_img = np.concatenate((img1, img2), axis=1)

# 显示新图片
Image.fromarray(new_img).show()

在这个示例中,我们使用np.array()函数将两张图片读取为Numpy数组,并使用np.concatenate()函数将两张图片沿着水平方向拼接。我们使用PIL库的Image.fromarray()函数将新图片显示出来。

2. vstack函数

在Numpy中,可以使用vstack函数将多个数组沿着垂直方向拼接在一起。vstack函数的语法如下:

numpy.vstack((a1, a2, ...))

其中,a1、a2、…表示要拼接的数组。

以下是使用vstack函数的示例:

import numpy as np
from PIL import Image

# 读取两张图片
img1 = np.array(Image.open('image1.jpg'))
img2 = np.array(Image.open('image2.jpg'))

# 将两张图片沿着垂直方向拼接
new_img = np.vstack((img1, img2))

# 显示新图片
Image.fromarray(new_img).show()

在这个示例中,我们使用np.array()函数将两张图片读取为Numpy数组,并使用np.vstack()函数将两张图片沿着垂直方向拼接。我们使用PIL库中的Image.fromarray()函数将新图片显示出来。

3. hstack函数

在Numpy中,可以使用hstack函数将多个数组沿着水平方向拼接在一起。hstack函数的语法如下:

numpy.hstack((a1, a2, ...))

其中,a1、a2、…表示要拼接的数组。

以下是使用hstack函数的示例:

import numpy as np
from PIL import Image

# 读取两张图片
img1 = np.array(Image.open('image1.jpg'))
img2 = np.array(Image.open('image2.jpg'))

# 将两张图片沿着水平方向拼接
new_img = np.hstack((img1, img2))

# 显示新图片
Image.fromarray(new_img).show()

在这个示例中,我们使用np()函数将两张图片读取为Numpy数组,并使用np.hstack()函数将两张图片沿着水平方向拼接。我们使用PIL库中的Image.fromarray()函数将新图片显示出来。

总结

本文介绍了Numpy数组做图片接的实现方法,包括concatenate、vstack、hstack函数的用法,并提供了使用这些函数的示例。在实际开发中,我们可以根据需要选择合适的函数进行图片拼接。