Skip to content
/ xpano Public

Automated photo stiching tool. Lets you import a directory of images and then export the autodetected panoramas.

License

Notifications You must be signed in to change notification settings

krupkat/xpano

Repository files navigation

tests clang-format clang-tidy

xpano

Xpano is a tool for panorama stitching with focus on simplicity and ease of use, major features include:

  • Auto detection of groups of images that can be stitched into panoramas
  • Preview + zoom + pan of the computed panoramas
  • Crop mode, boundary auto fill, selectable projection types
  • Projection adjustments: pitch, yaw and roll
  • Export of full resolution panoramas including exif metadata

Built with

The app uses the excellent OpenCV library for image manipulation and its stitching module for computing the panoramas.

Other dependencies include imgui, SDL, spdlog, Catch2, nativefiledialog-extended, alpaca, thread-pool, expected, Exiv2, multiblend, SIMDe and the Google Noto fonts.

Demo

Check out the demo on YouTube. This is how the app looks after importing a directory of 200 images.

Main Xpano gui

Installation

Install directly from Flathub or the Microsoft Store:

Download from Flathub  Download from the Microsoft Store

Get additional packages:

Command line

Xpano has basic CLI support, you can either run it fully automatic in the command line, or launch to gui with the --gui flag.

Xpano [<input files>] [--output=<path>] [--gui] [--help] [--version]

Development

The project can be built by running a single script from the misc/build directory. You will need at least CMake 3.21, git and a compiler with C++20 support.

NixOS

Run the build script from the root of the repository:

nix-shell misc/build/nix/default.nix
./misc/build/build-nixos.sh

Possible issues when running - troubleshooting.

MacOS

Library prerequisites: SDL2, spdlog, catch2

Install with brew: brew install sdl2 spdlog catch2

Install with macports: sudo port install libsdl2 spdlog catch2 (for details: #96)

Run the build script from the root of the repository:

./misc/build/build-macos.sh

Ubuntu 22.04

Library prerequisites:

sudo apt install libgtk-3-dev libopencv-dev libsdl2-dev libspdlog-dev

Run the build script from the root of the repository:

./misc/build/build-ubuntu-22.sh

Ubuntu 20.04

Build works with g++-10 from the system repository. You will have to install a more recent version of CMake, e.g. from Kitware.

Library prerequisites:

sudo apt install libgtk-3-dev

Run the build script from the root of the repository:

./misc/build/build-ubuntu-20.sh

Windows

Open the "Developer PowerShell for VS 2022" profile in Windows Terminal and run the build script from the root of the repository:

./misc/build/build-windows-latest.ps1

Contributions

Contributions are more than welcome, there is a couple of ideas for enhancements in open issues which you could take on - if you start working on one of them, please add a comment there.

Please check the contribution guidelines for further details regarding formatting and coding style.

License

Distributed under the GPL-3.0-or-later license. See the full license text for more information.

Contact

Tomas Krupka - krupkat.cz