Базовый Python для увеличения данных

Я новичок в программировании на Python и учился кодировать проект с YouTube, когда я застрял на следующем коде.

Полный код находится здесь: https://github.com/nikhilroxtomar/Retina-Blood-Vessel-Segmentation-using-UNET-in-TensorFlow/blob/main/data.py, а YouTube, где он появляется, находится в 24:30. - https://youtu.be/tpbWZVY2dng?t=1470 )

      from albumentations import HorizontalFlip
def augment_data(images, masks, save_path, augment=True):

  for idx, (x, y) in tqdm(enumerate(zip(images, masks)), total=len(images)):
      """ Extracting names """
      name = x.split("/")[-1].split(".")[0]

      """ Reading image and mask """
      x = cv2.imread(x, cv2.IMREAD_COLOR)
      y = imageio.mimread(y)[0]

      if augment == True:
          aug = HorizontalFlip(p=1.0)
          augmented = aug(image=x, mask=y)
          x1 = augmented["image"]
          y1 = augmented["mask"]

Это то, что я не понимаю

      if augment == True:
      aug = HorizontalFlip(p=1.0)
      augmented = aug(image=x, mask=y)
      x1 = augmented["image"]
      y1 = augmented["mask"]

Как используется aug для получения входных параметров изображения? Используется ли дополненное как словарь? Не могли бы вы объяснить, как?

2 ответа

aug это пример albumentations.augmentations.transforms.HorizontalFlip класс

Затем, если вы посмотрите исходный код, вы увидите, что он наследуется отalbumentations.core.transforms_interface.DualTransformкласс, который, глядя на исходный код, наследуется от класс.

Глядя на BasicTransform класс, вы можете видеть, что он реализует __call__()метод. Требуется переменное количество аргументов ключевого слова **kwargs и после некоторой обработки возвращается (т.е. когда вы вызываете aug()). kwargsэто диктовка с аргументами, которые вы передаете. В вашем случае ключи image а также mask.

В качестве примечания вместо if augment == True: это должно быть просто if augment:

aug это переменная, которая присваивается функциональному объекту

Квадратные скобки означают, что объект внедрил __getitem__()Магический метод Python. Это может быть диктат, но не обязательно

Другие вопросы по тегам