From a562f51f66ebd767112a3321843fc358c106ee43 Mon Sep 17 00:00:00 2001 From: Nazar Sturanec Date: Mon, 20 May 2024 16:27:38 +0300 Subject: [PATCH] Add breeding_date_set.py --- breeding_date_set.py | 78 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 breeding_date_set.py diff --git a/breeding_date_set.py b/breeding_date_set.py new file mode 100644 index 0000000..d193b95 --- /dev/null +++ b/breeding_date_set.py @@ -0,0 +1,78 @@ +import cv2 +import albumentations as A +import numpy as np +import os +file_txt = [] +file_jpg = [] + +folder_path = ('D:\\train') +for foldername, subfolders, filenames in os.walk(folder_path): + for subfolder in subfolders: + folder_path = (f'D:\\train\\{subfolder}') + for foldername, subfolders, filenames in os.walk(folder_path): + for filename in filenames: + + f = filename.split('.') + + if f[-1] == 'txt': + file_txt.append(filename) + elif f[-1] == 'jpg': + file_jpg.append(filename) + +for k in range(len(file_jpg)): + image = cv2.imread(f'D:\\train\\images\\{file_jpg[k]}') + annotations = [] + with open(f'D:\\train\\labels\\{file_txt[k]}', 'r') as file: + lines = file.readlines() + for line in lines: + print(line) + annotations.append(line) + + + main_fillet_yolo_conversion = [] + fillet_yolo_bboxes = [] + fillet_yolo_class = [] + print(annotations) + for ii in range(len(annotations)): + a = annotations[ii].split(' ') + + for i in range(len(a)): + + try: + main_fillet_yolo_conversion.append(int(a[i])) + except ValueError: + main_fillet_yolo_conversion.append(float(a[i])) + print(main_fillet_yolo_conversion) + fillet_yolo_class.append(main_fillet_yolo_conversion[0]) + del main_fillet_yolo_conversion[0] + fillet_yolo_bboxes.append(main_fillet_yolo_conversion) + print(fillet_yolo_bboxes) + print(fillet_yolo_class) + main_fillet_yolo_conversion = [] + + for o in range(10): + if image is None: + raise ValueError("Image not found or the path is incorrect") + if not isinstance(image, np.ndarray): + raise TypeError("Image must be a numpy array") + + bboxes = fillet_yolo_bboxes + category_ids = fillet_yolo_class + + transform = A.Compose([ + A.HorizontalFlip(p=0.5), + A.RandomBrightnessContrast(p=0.2), + A.ShiftScaleRotate(shift_limit=0.1, scale_limit=0.2, rotate_limit=15, p=0.5), + ], bbox_params=A.BboxParams(format='yolo', label_fields=['category_ids'])) + + transformed = transform(image=image, bboxes=bboxes, category_ids=category_ids) + transformed_image = transformed['image'] + transformed_bboxes = transformed['bboxes'] + transformed_category_ids = transformed['category_ids'] + + cv2.imwrite(f'D:\\python\\prodgect_2\\pythonProject1\\op\\1\\{o}_{file_jpg[k]}', transformed_image) + with open(f'D:\\python\\prodgect_2\\pythonProject1\\op\\1\\{o}_{file_txt[k]}', 'w') as f: + for bbox, category_id in zip(transformed_bboxes, transformed_category_ids): + x_center, y_center, width, height = bbox + cla = category_id + f.write(f"{cla} {x_center} {y_center} {width} {height}\n") \ No newline at end of file