Update app.py
Browse files
app.py
CHANGED
|
@@ -41,19 +41,29 @@ def get_model():
|
|
| 41 |
# -----------------------
|
| 42 |
def predict(img):
|
| 43 |
model = get_model()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
img_gray = img.convert("L").resize((224, 224))
|
| 45 |
x = np.expand_dims(np.expand_dims(np.array(img_gray)/255.0, -1), 0)
|
| 46 |
|
|
|
|
| 47 |
pred = model.predict(x)[0]
|
| 48 |
-
|
| 49 |
-
tumor_present = pred.max() > 0.5
|
| 50 |
|
| 51 |
if tumor_present:
|
| 52 |
-
mask = (pred > 0.
|
| 53 |
-
mask_img = Image.fromarray(mask.squeeze()).convert("L")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
overlay = img.convert("RGB")
|
| 55 |
-
|
| 56 |
-
overlay.paste(red_overlay, (0,0), mask_img)
|
| 57 |
return "Tumor Detected", overlay
|
| 58 |
else:
|
| 59 |
return "No Tumor Detected", None
|
|
|
|
| 41 |
# -----------------------
|
| 42 |
def predict(img):
|
| 43 |
model = get_model()
|
| 44 |
+
|
| 45 |
+
# Save original size
|
| 46 |
+
orig_size = img.size # (width, height)
|
| 47 |
+
|
| 48 |
+
# Resize image for model
|
| 49 |
img_gray = img.convert("L").resize((224, 224))
|
| 50 |
x = np.expand_dims(np.expand_dims(np.array(img_gray)/255.0, -1), 0)
|
| 51 |
|
| 52 |
+
# Predict mask
|
| 53 |
pred = model.predict(x)[0]
|
| 54 |
+
tumor_present = pred.max() > 0.7
|
|
|
|
| 55 |
|
| 56 |
if tumor_present:
|
| 57 |
+
mask = (pred > 0.7).astype(np.uint8) * 255
|
| 58 |
+
mask_img = Image.fromarray(mask.squeeze()).convert("L")
|
| 59 |
+
|
| 60 |
+
# Resize mask back to original image size
|
| 61 |
+
mask_img = mask_img.resize(orig_size)
|
| 62 |
+
|
| 63 |
+
# Create red overlay
|
| 64 |
+
red_overlay = Image.new("RGB", orig_size, (255, 0, 0))
|
| 65 |
overlay = img.convert("RGB")
|
| 66 |
+
overlay.paste(red_overlay, (0, 0), mask_img)
|
|
|
|
| 67 |
return "Tumor Detected", overlay
|
| 68 |
else:
|
| 69 |
return "No Tumor Detected", None
|