Download scripts/visualize_dataset.py from acd23/sam-vit-h-facade-segmentation-project: direct link, hf CLI and curl.
- Browser
- Download file 1.84 kB
-
https://huggingface.co/acd23/sam-vit-h-facade-segmentation-project/resolve/main/scripts/visualize_dataset.py
- Command line
-
hf download hf://acd23/sam-vit-h-facade-segmentation-project/scripts/visualize_dataset.py
-
curl -L -o visualize_dataset.py https://huggingface.co/acd23/sam-vit-h-facade-segmentation-project/resolve/main/scripts/visualize_dataset.py
1.84 kB
| """ | |
| Visualize sample images and masks from the CMP Facade dataset. | |
| """ | |
| import os | |
| import numpy as np | |
| import matplotlib | |
| matplotlib.use('Agg') | |
| import matplotlib.pyplot as plt | |
| from PIL import Image | |
| import random | |
| def visualize_samples(data_dir="data/cmp_facade", split="train", num_samples=5, save_path="outputs/dataset_visualization.png"): | |
| os.makedirs(os.path.dirname(save_path), exist_ok=True) | |
| split_dir = f"{data_dir}/{split}" | |
| img_dir = f"{split_dir}/images" | |
| mask_dir = f"{split_dir}/masks_binary" | |
| img_files = sorted([f for f in os.listdir(img_dir) if f.endswith('.jpg')])[:20] | |
| selected = random.sample(img_files, min(num_samples, len(img_files))) | |
| fig, axes = plt.subplots(num_samples, 3, figsize=(12, 4 * num_samples)) | |
| if num_samples == 1: | |
| axes = axes.reshape(1, -1) | |
| for i, img_file in enumerate(selected): | |
| img = Image.open(f"{img_dir}/{img_file}").convert('RGB') | |
| mask = Image.open(f"{mask_dir}/{img_file.replace('.jpg', '.png')}").convert('L') | |
| mask_arr = np.array(mask) | |
| img_arr = np.array(img) | |
| overlay = img_arr.copy() | |
| overlay[mask_arr > 0] = [255, 0, 0] | |
| blended = (img_arr * 0.6 + overlay * 0.4).astype(np.uint8) | |
| axes[i, 0].imshow(img) | |
| axes[i, 0].set_title(f"Image {img_file}") | |
| axes[i, 0].axis('off') | |
| axes[i, 1].imshow(mask, cmap='gray') | |
| axes[i, 1].set_title("Facade Mask (class 1)") | |
| axes[i, 1].axis('off') | |
| axes[i, 2].imshow(blended) | |
| axes[i, 2].set_title("Overlay") | |
| axes[i, 2].axis('off') | |
| plt.tight_layout() | |
| plt.savefig(save_path, dpi=150) | |
| plt.close() | |
| print(f"Visualization saved to {save_path}") | |
| if __name__ == "__main__": | |
| visualize_samples("data/cmp_facade", "train", num_samples=5, save_path="outputs/dataset_visualization.png") | |