Python 利用opencv对jpg图片进行拼接,并绘制矩形框和文字描述
时间: 2024-03-15 15:45:12 浏览: 33
下面是一个基于 OpenCV 的图片拼接、绘制矩形框和文字描述的示例代码:
```python
import cv2
# 读取图片
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 拼接图片
img = cv2.hconcat([img1, img2])
# 绘制矩形框
cv2.rectangle(img, (100, 100), (300, 400), (0, 0, 255), 2)
# 绘制文字描述
text = 'Hello, World!'
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, text, (100, 50), font, 1, (255, 0, 0), 2, cv2.LINE_AA)
# 保存图片
cv2.imwrite('result.jpg', img)
```
代码中,`cv2.imread` 用于读取图片,`cv2.hconcat` 用于拼接图片,`cv2.rectangle` 用于绘制矩形框,`cv2.putText` 用于绘制文字描述,`cv2.imwrite` 用于保存图片。其中,`cv2.rectangle` 和 `cv2.putText` 的参数依次为:图片、矩形框左上角坐标、矩形框右下角坐标、颜色、线条宽度;图片、文字、文字位置、字体、字体大小、颜色、线条宽度、线条类型。
你可以根据自己的需求调整代码中的参数,实现不同的效果。
相关问题
Python 利用opencv对jpg图片进行循环拼接
下面是一个基于 OpenCV 的循环拼接图片的示例代码:
```python
import cv2
import os
# 定义图片文件夹路径和拼接后图片保存路径
img_folder = 'images/'
result_path = 'result.jpg'
# 读取所有图片
img_files = [f for f in os.listdir(img_folder) if f.endswith('.jpg')]
imgs = [cv2.imread(os.path.join(img_folder, f)) for f in img_files]
# 计算拼接后图片的宽度和高度
height, width, channels = imgs[0].shape
for img in imgs[1:]:
h, w, c = img.shape
height = max(height, h)
width += w
# 创建拼接后图片的空白画布
result = np.zeros((height, width, channels), dtype=np.uint8)
# 依次将每张图片拼接到空白画布上
x_offset = 0
for img in imgs:
h, w, c = img.shape
result[0:h, x_offset:x_offset+w] = img
x_offset += w
# 保存拼接后图片
cv2.imwrite(result_path, result)
```
代码中,首先定义了图片文件夹路径和拼接后图片保存路径。然后,使用 `os.listdir` 函数获取图片文件夹中所有的图片文件名,并使用列表推导式读取所有图片。接着,计算拼接后图片的宽度和高度,并创建一个空白的画布。最后,依次将每张图片拼接到空白画布上,并保存拼接后的图片。
你可以根据自己的需求调整代码中的参数,实现不同的效果。例如,调整图片文件夹路径、拼接后图片保存路径、图片格式等。
python利用opencv实现多张图片拼接
可以使用cv2库中的函数cv2.hconcat()和cv2.vconcat()来实现多张图片的拼接。其中,cv2.hconcat()用于水平拼接,cv2.vconcat()用于垂直拼接。以下是一个简单的示例代码:
import cv2
# 读取图片
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
img3 = cv2.imread('image3.jpg')
# 水平拼接
h_concat = cv2.hconcat([img1, img2, img3])
# 垂直拼接
v_concat = cv2.vconcat([img1, img2, img3])
# 显示拼接后的图片
cv2.imshow('Horizontal Concatenation', h_concat)
cv2.imshow('Vertical Concatenation', v_concat)
cv2.waitKey(0)
cv2.destroyAllWindows()
相关推荐
![](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)