根据上述代码,请用代码展示实现图像的拼接
时间: 2024-06-11 15:08:04 浏览: 10
假设有两张图片分别为img1和img2,它们的宽度和高度分别为w1,h1和w2,h2。我们可以使用PIL库中的Image模块和numpy库来实现图像的拼接。
方法一:水平拼接
水平拼接就是将两张图片的像素水平方向拼接在一起,得到的新图片的宽度为w1+w2,高度为max(h1,h2)。
```python
from PIL import Image
import numpy as np
# 读取图片
img1 = Image.open('img1.jpg')
img2 = Image.open('img2.jpg')
# 将图片转换为numpy数组
arr1 = np.array(img1)
arr2 = np.array(img2)
# 获取两张图片的宽度和高度
w1, h1 = img1.size
w2, h2 = img2.size
# 创建一个新的numpy数组,宽度为w1+w2,高度为max(h1,h2)
new_arr = np.zeros((max(h1,h2), w1+w2, 3), dtype=np.uint8)
# 将arr1和arr2分别复制到new_arr中
new_arr[:h1, :w1, :] = arr1
new_arr[:h2, w1:w1+w2, :] = arr2
# 将new_arr转换为Image对象
new_img = Image.fromarray(new_arr)
# 显示拼接后的图片
new_img.show()
```
方法二:垂直拼接
垂直拼接就是将两张图片的像素垂直方向拼接在一起,得到的新图片的宽度为max(w1,w2),高度为h1+h2。
```python
from PIL import Image
import numpy as np
# 读取图片
img1 = Image.open('img1.jpg')
img2 = Image.open('img2.jpg')
# 将图片转换为numpy数组
arr1 = np.array(img1)
arr2 = np.array(img2)
# 获取两张图片的宽度和高度
w1, h1 = img1.size
w2, h2 = img2.size
# 创建一个新的numpy数组,宽度为max(w1,w2),高度为h1+h2
new_arr = np.zeros((h1+h2, max(w1,w2), 3), dtype=np.uint8)
# 将arr1和arr2分别复制到new_arr中
new_arr[:h1, :w1, :] = arr1
new_arr[h1:h1+h2, :w2, :] = arr2
# 将new_arr转换为Image对象
new_img = Image.fromarray(new_arr)
# 显示拼接后的图片
new_img.show()
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)