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 = []
|