How kikirpaprojet/kikirpa-cpp works
KIKIRPA-CPP is a Qt/C++ application for stitching overlapping artwork photographs into a mosaic. The documented backend workflow imports tiles, matches overlaps, positions tiles, corrects intensity, computes seamlines, assembles, and exports. JSON-configured steps run through a resumable pipeline; the Qt interface includes project/grid and alignment views. The README says assembly, export, and the Qt-to-computation connection are still in progress. Several stage implementations are unsampled, so their links follow the documented workflow rather than inferred calls.
Main entry points: mainwindow.cpp Main window · pipeline.cpp Pipeline runner · dynamic_programming_dijkstra_step.cpp Seamline finding · import_step.cpp Tile import
Components 19
Qt interface
- Main window
src/frontend/mainwindow.cpp - Project grid
src/frontend/projectgrid.cpp - Alignment view
src/frontend/alignment_tab.cpp
Pipeline runtime
- Pipeline JSON
src/frontend/PipelineJson.cpp - Pipeline builder
src/backend/core/pipeline/pipeline_builder.cpp - Pipeline runner
src/backend/core/pipeline/pipeline.cpp - Step framework
include/backend/core/step/step.h - Run checkpoints
src/backend/core/checkpoint/checkpoint.cpp
Matching and positioning
- Overlap matching
src/backend/steps/phase_correlation_step.cpp - Tile positioning
src/backend/algorithms/stitching/positioning/tile_positioner.cpp
Mosaic processing
- Intensity correction
src/backend/steps/intensity_correction_step.cpp - Seamline finding
src/backend/steps/dynamic_programming_dijkstra_step.cpp - Final verification
src/backend/steps/final_verification_step.cpp - Mosaic assembly
include/backend/core/data/algorithm_types.h
Input and output
- Tile import
src/backend/steps/import_step.cpp - TIFF export
src/backend/steps/export_step.cpp - Pyramidal TIFF reader
src/backend/core/io/pyramidal_tiff_reader.cpp - TIFF writers
src/backend/core/io/tiled_tiff_writer.cpp
Other components
- Project user
Connections 17
- Project user → Main window: uses
README.md - Main window → Project grid: coordinates
src/frontend/mainwindow.cpp - Main window → Alignment view: coordinates
src/frontend/mainwindow.cpp - Main window → Pipeline JSON: configures
- Pipeline JSON → Pipeline builder: describes steps
- Pipeline builder → Pipeline runner: constructs
src/backend/core/pipeline/pipeline_builder.cpp - Pipeline runner → Step framework: runs steps
- Pipeline runner → Run checkpoints: uses checkpoints
src/backend/core/pipeline/pipeline.cpp - Tile import → Overlap matching: precedes
README.md - Overlap matching → Tile positioning: precedes
README.md - Tile positioning → Intensity correction: precedes
README.md - Intensity correction → Seamline finding: precedes
README.md - Seamline finding → Mosaic assembly: precedes
README.md - Mosaic assembly → TIFF export: precedes
README.md - Tile import → Pyramidal TIFF reader: reads tiles
- TIFF export → TIFF writers: writes TIFF
- Seamline finding → Final verification: workflow stage