Vous créez plusieurs txt pour la même image. Je pense qu'il existe une telle chose.
Copiez l'annotation et ajoutez ou créez-en une nouvelle.
how to
Spécifiez un dossier et travaillez sans distinction avec le texte à l'intérieur.
Si vous trouvez train.txt
ou class.txt
, veuillez évacuer.
Après avoir copié par numéro, recherchez le txt du même nom et ajoutez une ligne.
Si vous voulez ajouter 2
de l'annotation dans le dossier arm_anno
au txt d'annotation de la même image dans body_anno
$ python3 yolocopy.py arm_anno body_anno 2
Ce sera.
code
yolocopy.py
import glob
import os
import sys
path = os.getcwd()
_, infile, outfile, inline = sys.argv # target_file, output_file, target_number
for nowtxt in glob.glob(infile + "/*.txt"):
textline = []
with open(nowtxt) as f:
l_strip = [s.strip() for s in f.readlines()]
for k in l_strip:
if str(k[0]) == str(inline):
textline.append(k)
basename = os.path.basename(nowtxt) #get name
with open(outfile +'/'+ basename, mode='a') as f:
for k in textline:
f.write('\n' + str(k))
trueline = []
with open(outfile +'/'+ basename) as f:
l_strip = [s.strip() for s in f.readlines()]
for k in l_strip:
if len(str(k))>0:
trueline.append(k)
#os.remove(outfile +'/'+ basename)
with open(outfile +'/'+ basename, mode='w') as f:
f.write('\n'.join(trueline))
Je pense que ce serait plus facile si vous vous limitez au txt qui a l'image avec le même nom, mais ce n'est pas gênant.
Recommended Posts