23 main_window_(main_window),
25 reconstruction_(nullptr),
27 setWindowTitle(
"Bundle adjustment");
30 "max_num_iterations");
32 .max_linear_solver_iterations,
33 "max_linear_solver_iterations");
37 "function_tolerance [10eX]", -1000, 1000);
40 "gradient_tolerance [10eX]", -1000, 1000);
43 "parameter_tolerance [10eX]", -1000, 1000);
46 "refine_focal_length");
48 "refine_principal_point");
50 "refine_extra_params");
54 QPushButton* run_button =
new QPushButton(tr(
"Run"),
this);
56 connect(run_button, &QPushButton::released,
this,
57 &BundleAdjustmentWidget::Run);
59 render_action_ =
new QAction(
this);
60 connect(render_action_, &QAction::triggered,
this,
61 &BundleAdjustmentWidget::Render, Qt::QueuedConnection);
65 reconstruction_ = reconstruction;
70 void BundleAdjustmentWidget::Run() {
71 CHECK_NOTNULL(reconstruction_);
77 [
this]() { render_action_->trigger(); });
83 thread_control_widget_->
StartThread(
"Bundle adjusting...",
true, thread);
86 void BundleAdjustmentWidget::Render() { main_window_->RenderNow(); }
std::shared_ptr< BundleAdjustmentOptions > bundle_adjustment
void Normalize(const double extent=10.0, const double p0=0.1, const double p1=0.9, const bool use_images=true)
void AddCallback(const int id, const std::function< void()> &func)
Generic file read and write utility for python interface.
colmap::BundleAdjustmentController BundleAdjustmentController