Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bundle Adjustment for QGIS

A QGIS plugin for performing photogrammetric bundle adjustment from image measurements and ground control points (GCPs).

The plugin estimates exterior orientation parameters (EOPs) for a block of photographs using image observations, camera calibration parameters, and ground control information. Results can be visualized directly within QGIS as temporary layers.

Features

  • Import image observations from a point layer
  • Import ground control points from a point layer
  • Configure camera calibration parameters
  • Estimate initial exterior orientation parameters
  • Perform bundle adjustment
  • Visualize adjusted camera stations as a temporary point layer
  • Visualize photo footprints as a temporary polygon layer
  • Operate entirely within QGIS

Requirements

  • QGIS 3.44 or later
  • NumPy
  • PyQt5

The plugin uses only the Python environment bundled with QGIS and does not require additional dependencies.

Input Data

Ground Control Points

The GCP layer must be a point layer containing:

Field Description
ID Unique point identifier

The geometry coordinates provide the X, Y, and Z coordinates of each control point.

Image Points

The image measurement layer must be a point layer containing:

Field Description
ID Point identifier
Photo Photo identifier

Each feature represents a measured image point.

Points sharing the same ID are assumed to correspond to the same object point observed in different photographs.

Camera Parameters

The following camera parameters can be configured:

Sensor

  • Image width (pixels)
  • Image height (pixels)
  • Pixel size (mm)

Interior Orientation

  • Focal length (mm)
  • Principal point X coordinate (mm)
  • Principal point Y coordinate (mm)

Radial Distortion

  • K₀
  • K₁
  • K₂

Standard Deviations

Standard deviations can be specified for:

  • Focal length
  • Principal point coordinates
  • Radial distortion coefficients

Usage

  1. Open the plugin from the QGIS toolbar or Plugins menu.
  2. Select the image point layer.
  3. Select the image point ID field.
  4. Select the photo name field.
  5. Select the GCP layer.
  6. Select the GCP ID field.
  7. Enter the camera parameters.
  8. Run the adjustment.

After processing, the plugin will create temporary layers containing:

  • Adjusted camera positions
  • Photo footprints

Outputs

Bundle Adjustment EOPs

A temporary PointZ layer containing:

  • Photo identifier
  • Camera coordinates (X, Y, Z)
  • Omega
  • Phi
  • Kappa

Bundle Adjustment Footprints

A temporary polygon layer containing the estimated footprint of each photograph at mean terrain height.

Coordinate Reference System

Output layers are created using the same CRS as the selected GCP layer.

It is assumed that the GCP coordinates and the resulting bundle adjustment solution are expressed in this CRS.

Development

Plugin structure:

qgis-plugin/
├── __init__.py
├── plugin.py
├── metadata.txt
├── assets/
│   └── icon.png
├── dialog/
│   ├── __init__.py
│   ├── dialog.py
│   └── dialog.ui
└── core/
    ├── __init__.py
    ├── bba.py
    └── camera.py

The graphical interface is defined in a Qt Designer .ui file and loaded dynamically at runtime.

About

A QGIS plugin for performing photogrammetric bundle adjustment from image measurements and ground control points.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages