assignment / README.md
rezvan98
Medical image processing backend API
ddbe9e9
|
Raw
History Blame Contribute Delete
3.85 kB
metadata
title: Medical Phase Simulator Backend
emoji: 🏥
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false

MedTech Image Processing Backend

FastAPI-based backend service for processing medical images with arterial and venous phase filters.

Features

  • Arterial Phase Processing: CLAHE-based contrast enhancement for improved visibility
  • Venous Phase Processing: Gaussian smoothing/blur for noise reduction
  • RESTful API: Simple POST endpoint for image processing
  • CORS Enabled: Works with frontend hosted on GitHub Pages
  • Docker Ready: Containerized for easy deployment on Hugging Face Spaces

API Endpoints

POST /process

Process a medical image with specified phase filter.

Parameters:

  • image (file): Medical image file (JPG/PNG)
  • phase (form): Processing phase - "arterial" or "venous"

Response:

  • Processed image as PNG

Example using curl:

curl -X POST "http://localhost:7860/process" \
  -F "image=@sample.jpg" \
  -F "phase=arterial" \
  --output processed.png

GET /

Health check and API information.

GET /health

Detailed health check with library versions.

Local Development

Prerequisites

  • Python 3.10+
  • pip

Setup

  1. Install dependencies:
pip install -r requirements.txt
  1. Run the server:
python app.py

The API will be available at http://localhost:7860

Using uvicorn directly:

uvicorn app:app --reload --port 7860

Docker Deployment

Build locally:

docker build -t medtech-backend .
docker run -p 7860:7860 medtech-backend

Hugging Face Spaces Deployment

  1. Create a new Space at huggingface.co/spaces
  2. Select Docker as the SDK
  3. Clone the Space repository:
git clone https://huggingface.co/spaces/YOUR-USERNAME/YOUR-SPACE-NAME
  1. Copy backend files:
cp app.py Dockerfile requirements.txt YOUR-SPACE-NAME/
cd YOUR-SPACE-NAME
  1. Commit and push:
git add .
git commit -m "Initial commit"
git push
  1. Your Space will automatically build and deploy at: https://YOUR-USERNAME-YOUR-SPACE-NAME.hf.space

Image Processing Details

Arterial Phase (Contrast Enhancement)

  • Uses CLAHE (Contrast Limited Adaptive Histogram Equalization)
  • Operates in LAB color space for better results
  • Parameters: clipLimit=3.0, tileGridSize=(8,8)

Venous Phase (Gaussian Smoothing)

  • Applies Gaussian blur with 15x15 kernel
  • Reduces noise and smooths fine details
  • Simulates venous phase imaging characteristics

Tech Stack

  • FastAPI: Modern Python web framework
  • OpenCV: Image processing library
  • NumPy: Numerical computing
  • Pillow: Image I/O
  • Uvicorn: ASGI server

Error Handling

The API includes comprehensive error handling:

  • Invalid file types → 400 Bad Request
  • Invalid phase parameter → 400 Bad Request
  • Processing errors → 500 Internal Server Error

CORS Configuration

CORS is configured to accept requests from:

  • GitHub Pages (*.github.io)
  • Localhost (development)
  • All origins (can be restricted for production)

Testing

Test the API with sample medical images:

import requests

url = "http://localhost:7860/process"
files = {"image": open("sample.jpg", "rb")}
data = {"phase": "arterial"}

response = requests.post(url, files=files, data=data)

with open("output.png", "wb") as f:
    f.write(response.content)

License

This is a demonstration project for educational purposes only. Not intended for clinical use.

Disclaimer

⚠️ Important: This application is for educational and demonstration purposes only. It should NOT be used for actual medical diagnosis or clinical decision-making. Always consult qualified healthcare professionals for medical imaging interpretation.