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
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.
Check out the demo on YouTube.
Install directly from Flathub or the Microsoft Store:
Get additional packages:
- Windows and MacOS executables from GitHub
- Ubuntu packages from my Launchpad PPA
- Nix packages from nixpkgs
- Archlinux AUR: xpano-git
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]
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.
Enter the provided nix-shell and run the build script from the root of the repository:
nix-shell misc/build/nix/default.nix
./misc/build/build-nixos.sh
Install prerequisites (listed in the build script, you can also use macports instead of brew), then run the build script from the root of the repository:
./misc/build/build-macos.sh
Install prerequisites (listed in the build scripts), then run the build script from the root of the repository:
./misc/build/build-ubuntu-26.sh
./misc/build/build-ubuntu-24.sh
./misc/build/build-ubuntu-22.sh
Open the "Developer PowerShell for VS" profile in Windows Terminal and run the build script from the root of the repository:
./misc/build/build-windows-latest.ps1
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.
Distributed under the GPL-3.0-or-later license. See the full license text for more information.
Tomas Krupka - krupkat.cz

