import mmcv
import cv2
import os
import json
import numpy as np
from tqdm import tqdm
img_dir="/media/liuyanxin/7bb102f1-967f-40cb-8069-704229851f24/heaven/tianzhi_saidao2_train_dataset/Tianzhi/train/images"
save_dir="/media/liuyanxin/7bb102f1-967f-40cb-8069-704229851f24/heaven/tianzhi_saidao2_train_dataset/Tianzhi/K/"
gt_txt_dir="/media/liuyanxin/7bb102f1-967f-40cb-8069-704229851f24/heaven/tianzhi_saidao2_train_dataset/Tianzhi/train/labelTxt"
image_name_list=os.listdir(gt_txt_dir)
class_of_gt="K"
for image_name in image_name_list:
gt_txt_path = os.path.join(gt_txt_dir, image_name.split('.')[0] + '.txt')
with open(gt_txt_path, "r") as f:
gt_labels = f.readlines()
for i in range(len(gt_labels)):
if gt_labels[i].replace("\n", "").split(' ')[-1] == class_of_gt:
data = gt_labels[i].replace("\n", "").split(' ')[:-1]
for j in range(8):
if (int(data[j])<0):
data[j]="0"
x1 = int(data[0])
y1 = int(data[1])
x2 = int(data[2])
y2 = int(data[3])
x3 = int(data[4])
y3 = int(data[5])
x4 = int(data[6])
y4 = int(data[7])
xmax=max(x1,x2,x3,x4)
ymax=max(y1,y2,y3,y4)
xmin=min(x1,x2,x3,x4)
ymin=min(y1,y2,y3,y4)
image_path=os.path.join(img_dir, image_name.split('.')[0] + '.png')
img_box = [xmin, ymax, xmax, ymin]
image=cv2.imread(image_path)
box_roi = image[img_box[3]:img_box[1], img_box[0]:img_box[2],:]
cv2.imwrite(save_dir+image_name.split('.')[0]+"_"+str(i)+"_"+str(xmin)+"_"+str(xmax)+"_"+str(ymin)+"_"+str(ymax)+".jpg", box_roi)
else:
pass```