python图片合成
时间: 2023-10-15 16:30:55 浏览: 107
在Python中,有多种方法可以合成图片。其中两种常见的方法是使用PIL(Python Imaging Library)和matplotlib库,以及使用numpy和OpenCV库。
方法一:使用PIL和matplotlib实现合并
首先,我们需要导入PIL库和matplotlib库。然后,使用`Image.open()`方法打开两张图片。接下来,创建一个新的图片对象,使用`Image.new()`方法指定图片模式和尺寸。然后,使用`paste()`方法将两张图片粘贴到新的图片对象上,可以通过`box`参数指定图片的位置。最后,使用`save()`方法保存合成后的图片,并使用`imshow()`和`show()`方法显示图片。
```python
from PIL import Image
import matplotlib.pyplot as plt
img1 = Image.open("1.jpg")
img2 = Image.open("2.jpg")
result = Image.new(img1.mode, (640*2, 480))
result.paste(img1, box=(0, 0))
result.paste(img2, box=(640, 0))
result.save("new_image.jpg")
plt.imshow(result)
plt.show()
```
方法二:使用numpy和OpenCV实现合并
首先,我们需要导入cv2库和numpy库。使用`cv2.imread()`方法读取两张图片。然后,可以选择将图片转换为灰度图像(如果需要)。然后,使用`vstack()`方法将两张图片在垂直方向上连接,或者使用`concatenate()`方法在水平方向上连接。最后,使用`imwrite()`方法保存合成后的图片。
```python
import cv2
import numpy as np
img1 = cv2.imread("1.jpg")
img2 = cv2.imread("2.jpg")
# 灰度图像
# gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
# gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 垂直连接
# image = np.vstack((gray1, gray2))
# 水平连接
image = np.concatenate([img1, img2], axis=1)
cv2.imwrite("new_image.jpg", image)
# cv2.imshow("image", image)
# cv2.waitKey(1)
```
以上是两种常见的Python图片合成方法,您可以根据自己的需求选择其中之一来实现图片合成。<span class="em">1</span><span class="em">2</span>
#### 引用[.reference_title]
- *1* *2* [python把两个图片合成一张图](https://blog.csdn.net/qq_42393859/article/details/108464416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文