Hannes Kuchelmeister commited on
Commit
8df7617
·
1 Parent(s): ea08a74

add overlap threshold for tile selection

Browse files
annotation-preprocessing/1_splitting_into_patches.py CHANGED
@@ -35,7 +35,7 @@ def get_neighbours(img, x, y, dimensions):
35
  neighbours.append(None)
36
  return neighbours
37
 
38
- def extract_object_tiles(obj, stack_images, in_folder):
39
  x_start = int(obj.x_min / size) * size
40
  x_end = int(math.ceil(obj.x_max / size)) * size
41
  y_start = int(obj.y_min / size) * size
@@ -49,6 +49,7 @@ def extract_object_tiles(obj, stack_images, in_folder):
49
  for y in range(y_start, y_end, size):
50
  for x in range(x_start, x_end, size):
51
  stack = []
 
52
  for row, img in focus_stack_images:
53
  box = [x, y, x + size, y + size]
54
  crop = img.crop(box)
@@ -72,6 +73,15 @@ def save_tile(original_file_path, out_dir, x : int, y : int, img, overwrite = Fa
72
  img.save(save_to)
73
  return save_to
74
 
 
 
 
 
 
 
 
 
 
75
  def save_obj_tiles(obj, out_folder, in_folder, stack_images):
76
  extracted = extract_object_tiles(obj, stack_images, in_folder)
77
  z_stacks = []
 
35
  neighbours.append(None)
36
  return neighbours
37
 
38
+ def extract_object_tiles(obj, stack_images, in_folder, threshold = 0.25):
39
  x_start = int(obj.x_min / size) * size
40
  x_end = int(math.ceil(obj.x_max / size)) * size
41
  y_start = int(obj.y_min / size) * size
 
49
  for y in range(y_start, y_end, size):
50
  for x in range(x_start, x_end, size):
51
  stack = []
52
+ if compute_overlap([x, y, x + size, y + size], [obj.x_min, obj.y_min, obj.x_max, obj.y_max]) > size * size * threshold:
53
  for row, img in focus_stack_images:
54
  box = [x, y, x + size, y + size]
55
  crop = img.crop(box)
 
73
  img.save(save_to)
74
  return save_to
75
 
76
+ def compute_overlap(rect1, rect2):
77
+ dx = min(rect1[2], rect2[2]) - max(rect1[0], rect2[0])
78
+ dy = min(rect1[3], rect2[3]) - max(rect1[1], rect2[1])
79
+ print(rect1)
80
+ print(rect2)
81
+ print(dx)
82
+ print(dy)
83
+ return dx * dy
84
+
85
  def save_obj_tiles(obj, out_folder, in_folder, stack_images):
86
  extracted = extract_object_tiles(obj, stack_images, in_folder)
87
  z_stacks = []