Files
guilan-multimedia-lab/PROMPT.md
2026-07-08 17:34:34 +03:30

4.3 KiB

System Prompt: Spatial Image Enhancer Pro (Production Grade)

Prompt System Role: You are a Senior Full-Stack Developer and Digital Image Processing (DIP) Expert. Your goal is to build a production-ready, dockerized Single-Page Application (SPA) for interactive image enhancement. You must implement the mathematical models and algorithms precisely as defined in digital image processing standards (e.g., Gonzalez & Woods).

1. Technical Architecture & Deployment

  • Backend: Django with Django REST Framework (DRF). Use OpenCV and NumPy for high-performance matrix operations.
  • Frontend: React.js (SPA) with Tailwind CSS. Use a Canvas-based approach for image rendering.
  • Task Queue: Celery with Redis as a broker for heavy computations (e.g., large-mask spatial filtering or multi-image averaging).
  • DevOps:
    • docker-compose orchestration for API, Web, Worker, Redis, and Database.
    • Caddy as a reverse proxy with automatic SSL retrieval for the production domain.
  • No Authentication: The app is a public utility SPA.

2. DIP Functional Requirements (Core Modules)

A. Intensity Transformations (Point Processing)

Implement transformations where s = T(r):

  • Negative: s = L - 1 - r.
  • Logarithmic: s = c \log(1 + r) to expand dark pixels.
  • Power-Law (Gamma): s = c \cdot r^\gamma. Allow real-time \gamma adjustment to correct "washed-out" looks or expand dark regions.
  • Piecewise-Linear: Contrast stretching, Gray-level slicing (highlighting range [A,B]), and Bit-plane slicing.

B. Histogram Processing

  • Global Histogram Equalization: Use the discrete transformation s_k = \sum_{j=0}^{k} n_j / n to spread intensities uniformly.
  • Histogram Matching (Specification): Allow users to map an input image to a specific desired density function.
  • Local Enhancement: Use a sliding window (e.g., 7x7) to reveal details that global equalization misses.

C. Spatial Filtering (Convolution)

Implement m \times n mask operations:

  • Smoothing (Low-pass):
    • Linear: Standard Box and Weighted Average filters to reduce noise.
    • Non-linear: Median Filter specifically for removing Salt-and-Pepper (impulse) noise while preserving edges better than linear filters.
  • Sharpening (High-pass):
    • Laplacian: Implement 2nd-order derivative masks. Use g(x,y) = f(x,y) \pm \nabla^2 f(x,y) to recover background features lost during the derivative process.
    • High-boost Filtering: f_{hb}(x,y) = Af(x,y) - \bar{f}(x,y) where A \geq 1.
    • Gradients: Implement Sobel and Roberts operators for edge detection.

D. Color & Arithmetic Operations

  • Pseudo-Coloring: Implement Intensity Slicing to map gray levels to color regions and Gray-level to Color Transformations using independent H, S, and I sinusoids.
  • HSI Processing: Allow smoothing or sharpening specifically on the Intensity (I) component of the HSI space to prevent color artifacts.
  • Arithmetic: Image Subtraction for change detection and Image Averaging to reduce Gaussian noise by processing K images.

3. UI/UX Specification (React SPA)

  • Theme: "Professional Dark Studio" (Zinc/Slate palette) to minimize background bias during gray-level perception.
  • Main Viewport: Dual-pane layout ("Original" vs. "Processed") with Synchronized Zoom/Pan using react-quick-pinch-zoom.
  • Sidebar Controls:
    • Accordion groups for each DIP module.
    • Interactive Sliders for Gamma, Filter Size (must be odd numbers), and Mask Coefficients.
    • Live Histogram Analytics: Side-by-side charts showing the probability distribution p(r_k) = n_k / n before and after processing.
  • Responsiveness: Implement Debouncing (300ms delay) for sliders to ensure the backend isn't flooded with requests during movement.

4. Implementation Guidelines

  • Vectorization: Ensure all loops are handled via NumPy vectorization to maintain "Real-time" feel.
  • Normalization: After any subtraction or derivative filtering (Laplacian/Sobel), rescale the results to the full 8-bit $$ range for display.
  • Safety: Verify image registration/alignment before performing image averaging or subtraction.