以下是详细讲解"Python用OpenCV将标注提取画框到对应的图像中"的完整攻略。
准备工作
在开始前,需要安装以下库:
- opencv-python
- matplotlib
安装方法:在命令行中输入 pip install 库名
。比如pip install opencv-python
安装opencv-python库。
步骤一:读取图像和标注文件
首先,我们需要从本地读取图像和对应的标注文件。我们假定图像和标注文件处于同一文件夹下,图像文件名是image.jpg
,标注文件名是annotation.txt
。
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像
img = cv2.imread('image.jpg')
# 读取标注文件
with open('annotation.txt') as f:
annotation = f.read().splitlines()
步骤二:解析标注文件
标注文件中每一行都表示一个框的位置信息,包含以下四个值:
- xmin: 左上角x坐标
- ymin: 左上角y坐标
- xmax: 右下角x坐标
- ymax: 右下角y坐标
我们需要将这些值存储为一个数组,方便后面使用。
# 解析标注文件
boxes = []
for line in annotation:
xmin, ymin, xmax, ymax = [int(x) for x in line.split()]
box = [xmin, ymin, xmax, ymax]
boxes.append(box)
步骤三:在图像中画框
我们已经将标注信息解析出来了,现在我们需要在图像中画出这些框。
# 在图像中画框
for box in boxes:
xmin, ymin, xmax, ymax = box
cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
最后一个参数(0, 255, 0)
表示绿色,宽度为2。
步骤四:显示图像
现在我们已经在图像中画好了框,我们可以使用Matplotlib库来显示图像。
# 显示图像
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
这将会用彩色显示图片。
示例一:
假设我们的annotation.txt
里面的内容如下:
10 10 100 100
50 170 200 300
运行上述代码后,将会在图像中画出两个框,第一个框的左上角在(10, 10)
,右下角在(100, 100)
,第二个框的左上角在(50, 170)
,右下角在(200, 300)
。
示例二:
假设我们的annotation.txt
里面的内容如下:
400 200 500 300
对应的图像文件image.jpg
是一张白色背景,没有任何内容的图片。
运行上述代码后,将会在图像中画出一个框,左上角在(400, 200)
,右下角在(500, 300)
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python用opencv将标注提取画框到对应的图像中 - Python技术站