将没有目标的图片抽出数据集文件夹

1、概述:

博主是基于2021年全球小麦目标检测计数比赛的数据集进行分析,发现CSV标签文件中是存在no_box也就是没有标注框的情况。

将没有目标的图片抽出数据集文件夹

为了方便菜鸡的我直接去用目标检测算法,博主将无目标的图像抽取处理,方便后续批量转换CSV文件为XML文件

点击转到博主编写的转换CSV文件代码博客

import cv2
import csv
import argparse
import numpy as np
import pandas as pd
from tqdm import tqdm


parser = argparse.ArgumentParser()
parser.add_argument('--big_csv', type=str, default='D:/Download/2021wheat_object_dectection/train.csv', help='')
parser.add_argument('--dataset_way', type=str, default='D:/Download/2021wheat_object_dectection/train', help='')
parser.add_argument('--wish_way', type=str, default='D:/Download/2021wheat_object_dectection/no_box_dataset', help='')
opt=parser.parse_args()

way_1=opt.big_csv
way_2=opt.dataset_way
way_3=opt.wish_way
print(opt)



def main():
    #读取csv文件,不读取表头
    df=pd.read_csv(way_1,header=None)
    #读取csv中数据的行数
    index_num=len(df.index)

    for i in tqdm(range(index_num)):

        #提取csv文件中指定行
        row_data_1=df.iloc[i]     #1到3657
        #截取行中对应列的值
        image_name=row_data_1[0]
        bbox=row_data_1[1]
        # print(bbox)

        if bbox=='no_box':
            #删除没有目标的行
            df_wish=df.drop(i)
            #把no_box的图片抽取到单独的文件夹中
            img=cv2.imread('%s/%s.png'%(way_2,image_name))
            cv2.imwrite('%s/%s.png'%(way_3,image_name),img)


            #将no_box数据抽取出来的csv文件保存
            df_wish.to_csv('D:/Download/2021wheat_object_dectection/train_wish.csv',index=False)



if __name__ == '__main__':
    main()

2、代码效果:

将没有目标的图片抽出数据集文件夹


上一篇:AtCoder Regular Contest 122(补题)


下一篇:T4