Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions crates/reco-cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,11 @@ enum Commands {
#[arg(long, value_parser = parse_blend)]
blend: Option<f32>,

/// Enable automatic per-camera exposure/white-balance matching
/// at the seam. Opt-in: off by default.
#[arg(long, default_value_t = false)]
color_match: bool,

/// Frame offset for temporal sync between cameras.
/// Positive: skip N right frames (right started first).
/// Negative: skip N left frames (left started first).
Expand Down Expand Up @@ -787,6 +792,7 @@ fn main() -> anyhow::Result<()> {
codec,
quality,
blend,
color_match,
sync_offset,
model,
detection_interval,
Expand All @@ -812,6 +818,7 @@ fn main() -> anyhow::Result<()> {
width,
height,
blend,
color_match,
start_time,
end_time,
max_frames,
Expand Down
4 changes: 4 additions & 0 deletions crates/reco-cli/src/stitch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ pub struct StitchArgs<'a> {
pub width: u32,
pub height: u32,
pub blend: Option<f32>,
pub color_match: bool,
pub start_time: Option<f64>,
pub end_time: Option<f64>,
pub max_frames: Option<u64>,
Expand Down Expand Up @@ -126,6 +127,9 @@ pub fn run_stitch(args: StitchArgs<'_>, interrupted: &Arc<AtomicBool>) -> anyhow
if let Some(b) = args.blend {
job = job.blend_width(b);
}
if args.color_match {
job = job.color_match(true);
}
if let Some(t) = args.start_time {
job = job.start_time(t);
}
Expand Down
7 changes: 7 additions & 0 deletions crates/reco-core/src/core/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,13 @@ impl StitchCore {
self.executor.set_blend_width(width);
}

/// Toggle automatic per-camera seam-band color matching (GPU executor
/// only; see [`crate::stitch::Executor::set_color_match_enabled`]).
/// Off by default.
pub fn set_color_match_enabled(&mut self, enabled: bool) {
self.executor.set_color_match_enabled(enabled);
}

/// Set the lens-correction strength on every lens (`0` = pinhole,
/// `1` = full KB4).
pub fn set_lens_correction_amount(&mut self, amount: f32) {
Expand Down
Loading
Loading