鱼C论坛

 找回密码
 立即注册
查看: 2240|回复: 1

假如每个txt文件有未知行数据,每行代表一个目标

[复制链接]
发表于 2020-12-9 22:56:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
假设有7000个txt文件,没个文件里有不知道多少行数据。一行数据格式例如:
3 0.6217320261437909 0.6081081081081081 0.08006535947712419 0.44324324324324327
,5个按空格隔开的数字分别代表 1:目标类别 2:目标x轴中心点 3:目标y轴中心点 4:目标的宽度 5:目标的高度(都是归一化数字,分别乘以图片的宽高width height获得真实的像素值)
如何分别对每一个目标解除归一化(这里我会),储存每个目标的左右边缘值xmin xmax(这里我不知道要存多少个,每多一个都要设置两个变量吗?),并在之后用某个数值(比如370)分别与每个目标比较判断其是否在其中某个目标范围内(也就是对所有的目标都不满足 xmin《370《xmax)?主要是用矩阵的话,一是不好确认维度,二是用变量存储的数据不知道要多少个变量,要多少次循环。(是不是可以用数组存储来?)
import cv2
#打开标签
f = open('.\\label\\000006.txt')
f1 = open('10000001.txt','w')
f2 = open('10000002.txt','w')
f3 = open('10000003.txt','w')
#读取标签中目标的坐标
data = []
for line in f.readlines():
        temp = line.split()
        data.append(temp)

#这一段是裁剪图片的代码
img = cv2.imread('000006.png',1)
a=0  #读取标签中的第一个目标的数据,在标签数量不同的时候怎么确定要读取多少遍呢?后面也不知道data矩阵的维度啊。
height, width, depth = img.shape
xmin = int(float(data[a][1])*width - 0.5*float(data[a][3])*width)
ymin = int(float(data[a][2])*height - 0.5*float(data[a][4])*height)
xmax = int(float(data[a][1])*width + 0.5*float(data[a][3])*width)
ymax = int(float(data[a][2])*height + 0.5*float(data[a][4])*height)
print(xmin,ymin,xmax,ymax)
dst0 = img[0:height, xmin:xmax]   # 裁剪坐标为[y0:y1, x0:x1]
size0 =dst0.shape
print(size0)
cv2.imshow('image',dst0)
b = 370 #图片的高是370,所以先试着从左边开始截,但是这样只能避开一个目标,因为只把b和data[a][1]比较了
if not b in (xmin,xmax):
        print(b)
        dst1 = img[0:height, 0:b]
        cv2.imshow('image1',dst1)
else:
        b = xmax + 10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-12-9 22:59:06 | 显示全部楼层
我的需求是这样的:做目标检测时数据集中有很多张按000000.png 000001.png排序命名的图片,每张图片中有数量不等的目标,这些目标所在的位置有对应的标签000000.txt等记录。格式例如3 0.6217320261437909 0.6081081081081081 0.08006535947712419 0.44324324324324327,5个按空格隔开的数字分别代表 1:目标类别 2:目标x轴中心点 3:目标y轴中心点 4:目标的宽度 5:目标的高度(都是归一化数字,分别乘以图片的宽高获得真实的像素值)由于数据集中的图片太长太矮影响使用,需要剪切成多个尽量正方形的图片(按宽高比大概竖着切成三份吧,切出来的图宽高差不多就可以)但不要截断目标。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 02:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表