Skip to content

Commit

Permalink
Fix #16
Browse files Browse the repository at this point in the history
  • Loading branch information
ortanaV2 committed Nov 19, 2024
1 parent 0c6d3a6 commit 815f2dc
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 16 deletions.
17 changes: 10 additions & 7 deletions dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,32 @@ def update_plot(loading=False):
overlay = img.copy()
alpha: float = alpha_var.get()

# Apply masks
active_masks = []

if coast_var.get():
overlay = hf.overlay_from_masks(overlay, (coast_mask, (174, 235, 52), alpha))
active_masks.append((coast_mask, (174, 235, 52), alpha))

if inland_var.get():
overlay = hf.overlay_from_masks(overlay, (inland_mask, (245, 130, 37), alpha))
active_masks.append((inland_mask, (245, 130, 37), alpha))

if forest_edge_var.get():
overlay = hf.overlay_from_masks(overlay, (forest_edge_mask, (81, 153, 14), alpha))
active_masks.append((forest_edge_mask, (81, 153, 14), alpha))

if tree_var.get():
overlay = hf.overlay_from_masks(overlay, (tree_mask, (66, 191, 50), alpha))
active_masks.append((tree_mask, (66, 191, 50), alpha))

if water_var.get():
overlay = hf.overlay_from_masks(overlay, (water_mask, (58, 77, 222), alpha))
active_masks.append((water_mask, (58, 77, 222), alpha))

overlay = hf.overlay_from_masks(overlay, *active_masks)

# Update matplotlib plot
ax.clear()

# Show "Loading..." text when loading flag is set
ax.text(0.5, 0.5, 'Loading...' if loading else "", color='black', fontsize=18, ha='center', va='center', transform=ax.transAxes)

ax.imshow(cv2.cvtColor(overlay, cv2.COLOR_BGR2RGB))
ax.imshow(overlay)

# Display paths if path layer is enabled
if path_var.get():
Expand Down
18 changes: 9 additions & 9 deletions helper_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,19 +111,19 @@ def place_buildings(blueprints: list, masks: dict[str, np.ndarray]) -> tuple[lis

return placed_buildings, building_mask

def overlay_from_masks(img, *masks: np.ndarray) -> None:
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
def overlay_from_masks(img, *masks: np.ndarray) -> np.ndarray:

# Add each mask with its color to the Overlay
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB).astype(np.float32)
overlay = img_rgb.copy()

for mask, color, alpha in masks:
mask_overlay = img_rgb.copy()
mask_overlay[mask > 0] = color
overlay = cv2.addWeighted(overlay, 1 - alpha, mask_overlay, alpha, 0)
# Blend the overlay with the original image
overlay = cv2.addWeighted(img_rgb, 0, overlay, 1, 0)
mask_color = np.zeros_like(img_rgb, dtype=np.float32)
mask_color[mask > 0] = color

alpha_mask = (mask > 0).astype(np.float32) * alpha
overlay = overlay * (1 - alpha_mask[..., None]) + mask_color * alpha_mask[..., None]

return overlay
return np.clip(overlay, 0, 255).astype(np.uint8)

def filter_artifacts(mask: np.ndarray, min_area_threshold: int = 2500) -> np.ndarray:
contours = get_contours(mask)
Expand Down

0 comments on commit 815f2dc

Please sign in to comment.