我有一个标有标记的数据集,用于检测几千幅图像,并在csv文件上进行注释。
csv包含以下列: image_path、class、xmax、xmin、ymax、ymin。
看起来像Pascal格式的标签,但当我绘制它时,它不起作用,所有标签看起来都不对
我注意到在xmin,ymin中有一些否定的值,这很奇怪
所以我想问哪种标签格式有可能有这样的值,因为它是?
例如,bbox有以下几个
xmax: 429 xmin:-68 ymax = 390 ymin = 130
我使用的代码是:
import cv2
import pandas as pd
df = pd.read_csv('train.csv')
directory = 'dataset/images'
color = (255, 0, 0)
thickness = 2
org = (50, 50)
fontScale = 1
font = cv2.FONT_HERSHEY_SIMPLEX
for i in df.index:
image_path = df.iloc[i]['image_path']
xmax = int(df.iloc[i]['xmax'])
xmin = int(df.iloc[i]['xmin'])
ymax = int(df.iloc[i]['ymax'])
ymin = int(df.iloc[i]['ymin'])
txt = df.iloc[i]['name']
x= xmax - xmin
y = ymax - ymin
start_point = (xmin,ymin)
end_point = (xmax,ymax)
img = cv2.imread(directory+ '/'+image_path)
image = cv2.putText(img, txt, org, font,
fontScale, color, thickness, cv2.LINE_AA)
bbox_img = cv2.rectangle(image, start_point, end_point, color, thickness)
cv2.imshow('image window', bbox_img)
# add wait key. window waits until user presses a key
cv2.waitKey(0)
# and finally destroy/close all open windows
cv2.destroyAllWindows()
发布于 2023-01-09 08:17:53
根据您的回答,您的一些包围盒使用的坐标系统与通常在OpenCV中进行绘图时使用的坐标系不同。OpenCV将图像中的坐标严格地视为正坐标(在绘制图像时,是图像的左上角) 来源.The事实表明,这些坐标使用了不同的范式,例如,位于图像的中心。
您可以查找数据集的格式设置。将图像坐标重新标准化也可能更简单,以便最低的和值是。
https://datascience.stackexchange.com/questions/117640
复制相似问题