File size: 1,176 Bytes
e5a19d6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import numpy as np
import random
from PIL import Image
import os
from glob import glob

from utils import get_index_to_class_mapping
from create_video import generate_video


def load_overlay(pathology_str:str, index:int):
      path = "data"
      pathology_path = os.path.join(path, pathology_str, f"*_{index}_overlay.png")
      pathology_path = glob(pathology_path)
      if len(pathology_path) == 0:
            return Image.fromarray(np.zeros((256, 256))).convert("L")
      pathology_path = pathology_path[0]
      im = Image.open(pathology_path)
      return im

def generate_image(pathology_str:str):
      pathology_idx = get_index_to_class_mapping()
      pathology_idx_inverted = {v: k for k, v in pathology_idx.items()}
      idx = random.randint(1, 100)
      im = Image.open(os.path.join("data", pathology_str, f"{pathology_idx_inverted[pathology_str] - 1}_{idx}.png"))
      im_to_disp = np.array(im)
      return im_to_disp, idx

def generate_video_and_gradcam(pathology_str):
      image, idx = generate_image(pathology_str)
      video = generate_video(image)
      generated_gradcam = load_overlay(pathology_str, idx)
      return video, generated_gradcam