Update app.py
Browse files
app.py
CHANGED
@@ -244,13 +244,8 @@ def create_cam_visualization_pil(image_pil, cam, alpha=0.6, vis_threshold=0.2):
|
|
244 |
w, h = image_pil.size
|
245 |
size = max(w, h)
|
246 |
|
247 |
-
# Resize CAM to match image
|
248 |
-
cam_resized = np.array(Image.fromarray(cam).resize((size, size), resample=Image.Resampling.BILINEAR))
|
249 |
-
|
250 |
# Normalize CAM to [0, 1]
|
251 |
-
cam_norm = (
|
252 |
-
|
253 |
-
cam_norm = transforms.CenterCrop((h, w))(cam_norm)
|
254 |
|
255 |
# Create heatmap using matplotlib colormap
|
256 |
colormap = cm.get_cmap('jet')
|
@@ -258,7 +253,13 @@ def create_cam_visualization_pil(image_pil, cam, alpha=0.6, vis_threshold=0.2):
|
|
258 |
cam_alpha = (cam_norm >= vis_threshold).astype(np.float32) * alpha # Alpha mask
|
259 |
|
260 |
cam_rgba = np.dstack((cam_colored, cam_alpha)) # Shape: (H, W, 4)
|
261 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
|
263 |
# Composite over original
|
264 |
composite = Image.alpha_composite(image_pil, cam_image)
|
|
|
244 |
w, h = image_pil.size
|
245 |
size = max(w, h)
|
246 |
|
|
|
|
|
|
|
247 |
# Normalize CAM to [0, 1]
|
248 |
+
cam_norm = (cam - cam.min()) / (np.ptp(cam) + 1e-8)
|
|
|
|
|
249 |
|
250 |
# Create heatmap using matplotlib colormap
|
251 |
colormap = cm.get_cmap('jet')
|
|
|
253 |
cam_alpha = (cam_norm >= vis_threshold).astype(np.float32) * alpha # Alpha mask
|
254 |
|
255 |
cam_rgba = np.dstack((cam_colored, cam_alpha)) # Shape: (H, W, 4)
|
256 |
+
|
257 |
+
# Resize CAM to match image
|
258 |
+
cam_resized = np.array(Image.fromarray(cam_rgba).resize((size, size), resample=Image.Resampling.BILINEAR))
|
259 |
+
|
260 |
+
cam_resized = transforms.CenterCrop((h, w))(torch.tensor(cam_resized)).numpy()
|
261 |
+
|
262 |
+
cam_image = Image.fromarray((cam_resized * 255).astype(np.uint8), mode="RGBA")
|
263 |
|
264 |
# Composite over original
|
265 |
composite = Image.alpha_composite(image_pil, cam_image)
|