krupkat / xpano

Automated photo stiching tool. Lets you import a directory of images and then export the autodetected panoramas.
https://krupkat.github.io/xpano/
GNU General Public License v3.0
257 stars 16 forks source link
cpp imgui imgui-sdl opencv panorama panorama-stitching sdl

tests clang-format clang-tidy

xpano

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

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