opencv 批量roi截图
时间: 2023-09-18 17:08:39 浏览: 91
请问您需要什么编程语言的实现呢?以下为Python实现的示例代码:
```python
import cv2
import os
# 读取图片文件夹路径
img_folder_path = "./images/"
# 读取ROI信息
roi_info = {
"image1.jpg": [(100, 100, 200, 200), (300, 300, 400, 400)],
"image2.jpg": [(50, 50, 150, 150), (200, 200, 300, 300)]
}
# 遍历图片文件夹
for filename in os.listdir(img_folder_path):
# 读取原始图片
img = cv2.imread(os.path.join(img_folder_path, filename))
# 遍历ROI信息
for roi in roi_info.get(filename, []):
# 截取ROI区域
x1, y1, x2, y2 = roi
roi_img = img[y1:y2, x1:x2]
# 保存截图
roi_filename = os.path.splitext(filename)[0] + "_" + "_".join(map(str, roi)) + ".jpg"
cv2.imwrite(os.path.join(img_folder_path, roi_filename), roi_img)
```
在上述代码中,我们首先定义了图片文件夹路径和ROI信息。其中ROI信息使用一个字典来存储,字典的键为图片文件名,值为一个列表,列表中每个元素表示一个ROI区域,每个元素是一个四元组,分别表示ROI区域的左上角和右下角坐标。接着,我们遍历图片文件夹,并根据ROI信息对每张图片进行截图。截图的过程就是利用切片操作截取ROI区域,然后使用`cv2.imwrite()`函数保存截图。保存的文件名中包含了原始图片文件名和ROI区域的坐标信息,以便我们能够方便地识别和管理截图文件。
阅读全文