Skip to content

poqudrof/NatarJS

Repository files navigation

# Camera/Projector Calibration System A comprehensive camera and projector calibration system with Firebase integration for QR code pose estimation applications. ## Apps This project contains several calibration applications accessible through different entry points: ### <� **Camera Calibration App** (`camera-calibration.html`) - Standalone camera intrinsic parameter calibration - Real-time camera resolution detection and validation - Calibration pattern detection (checkerboard, circles) - Camera quality assessment (focus, lighting) ### >� **Calibration Wizard** (`calibration-wizard.html`) - Step-by-step guided calibration workflow - Complete camera + projector calibration process - Quad-based flat projection calibration (4-point) - Real-time feedback and validation - Firebase integration for saving/loading calibrations ## Libraries The system provides reusable calibration libraries for integration into other applications: ### =� **CalibrationLib** (`src/components/CalibrationLib.js`) - Core calibration algorithms and utilities - Point transformation functions - Calibration validation and quality metrics - Easy integration interface for external apps ### <�� **CalibrationManager** (`src/calibration/core/CalibrationManager.js`) - Main orchestrator for calibration workflows - Manages camera and projector calibration processes - Handles calibration data persistence ### =� **CalibrationWidget** (UI Components) - Embeddable calibration status display - Real-time feedback components - Reusable calibration interface elements ### =�� **CalibrationStorage** (`src/calibration/storage/`) - Firebase integration for calibration data - User authentication and data isolation - Calibration versioning and history management ## Key Features - **Multi-mode Calibration**: Camera-only, projector-only, or combined calibration - **Real-time Feedback**: Live quality assessment during calibration - **Firebase Integration**: Cloud storage with user authentication - **Modular Design**: Reusable components for easy integration - **Quality Assurance**: Automatic validation and accuracy metrics - **Cross-platform**: Browser-based with OpenCV.js ## Project Structure ``` � src/ # Source code � � calibration/ # Core calibration modules � � � core/ # Core calibration classes � � � patterns/ # Calibration patterns � � � storage/ # Data persistence � � � ui/ # User interface components � � camera/ # Camera integration � � projector/ # Projector integration � � utils/ # Utility functions � � components/ # Reusable components � public/ # Static assets and HTML apps � tests/ # Test suites � config/ # Configuration files � docs/ # Documentation ``` ## Getting Started 1. Install dependencies: `npm install` 2. Start development server: `npm run dev` 3. Access calibration apps through the provided HTML files 4. For library integration, import components from `src/components/` ## Development - **Build**: `npm run build` - **Test**: `npm test` - **Screenshots**: `npm run test:screenshots` - Automated Puppeteer tests with visual captures - **Lint**: `npm run lint` - **Format**: `npm run format` Visual verification available in `screenshots/` directory after running screenshot tests. See `docs/Implementation.md` for detailed technical documentation.

About

First ideas and tests for JS port Papart & Natar in JS for browsers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published