Initial commit: Dockerfile, pipeline script, docker-compose

- Dockerfile based on debian:bookworm with Hugin 2024, Python 3, OpenCV
- Automated panorama pipeline for NavCam and Mastcam-Z
- CLAHE preprocessing for cpfind, render with originals
- NavCam tile 01+04 combining with 16px overlap
- docker-compose.yml for homelab deployment

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Franck Garnier
2026-04-12 10:26:47 -04:00
commit 97e7101855
5 changed files with 762 additions and 0 deletions

47
Dockerfile Normal file
View File

@@ -0,0 +1,47 @@
FROM debian:bookworm-slim
LABEL maintainer="franck.garnier" \
description="Mars rover panorama stitching pipeline - Hugin 2024 + Python + OpenCV"
# Install Hugin CLI tools + Python + dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
hugin-tools \
enblend \
python3 \
python3-pip \
python3-venv \
python3-numpy \
python3-opencv \
python3-pil \
python3-mysql.connector \
wget \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Install additional Python packages
RUN pip3 install --no-cache-dir --break-system-packages \
requests \
python-dotenv
# Create working directories
RUN mkdir -p /data /output /app
WORKDIR /app
# Copy pipeline scripts
COPY pipeline/ /app/
# Make scripts executable
RUN chmod +x /app/*.py 2>/dev/null || true
RUN chmod +x /app/*.sh 2>/dev/null || true
# Verify installations
RUN nona 2>&1 | head -1 || true && \
cpfind 2>&1 | head -1 || true && \
enblend --version 2>&1 | head -1 || true && \
python3 -c "import cv2; print(f'OpenCV {cv2.__version__}')" && \
python3 -c "import numpy; print(f'NumPy {numpy.__version__}')" && \
python3 -c "from PIL import Image; print('Pillow OK')"
ENTRYPOINT ["python3", "/app/panorama_pipeline.py"]
CMD ["--help"]