You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
import os
|
|
|
|
|
import cv2
|
|
|
|
|
|
|
|
|
|
dataset_path = "datasets/v4_4_test_dataset"
|
|
|
|
|
annotation_file = "datasets/v4_4_test_dataset/label.txt"
|
|
|
|
|
|
|
|
|
|
small_images_path = "datasets/v4_4_test_dataset_small"
|
|
|
|
|
new_annotation_file = "datasets/v4_4_test_dataset_small/label.txt"
|
|
|
|
|
|
|
|
|
|
os.makedirs(small_images_path, exist_ok=True)
|
|
|
|
|
|
|
|
|
|
with open(annotation_file, "r") as f:
|
|
|
|
|
lines = f.readlines()
|
|
|
|
|
|
|
|
|
|
for i, line in enumerate(lines):
|
|
|
|
|
image_name = line.split(" ")[0]
|
|
|
|
|
|
|
|
|
|
image_path = os.path.join(dataset_path, image_name)
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
image = cv2.imread(image_path)
|
|
|
|
|
height, width, _ = image.shape
|
|
|
|
|
|
|
|
|
|
# 如果图像的宽度和高度都小于2000而且长宽比小于2,将其复制到新的文件夹,并保存其标注信息
|
|
|
|
|
if height < 2000 and width < 2000:
|
|
|
|
|
if max(height, width) / min(height, width) < 2:
|
|
|
|
|
print(i, height, width, image_path)
|
|
|
|
|
small_image_path = os.path.join(small_images_path, image_name)
|
|
|
|
|
cv2.imwrite(small_image_path, image)
|
|
|
|
|
with open(new_annotation_file, "a") as f:
|
|
|
|
|
f.write(f"{line}")
|
|
|
|
|
except:
|
|
|
|
|
continue
|