{"id":14437915,"url":"https://github.com/krupkat/xpano","last_synced_at":"2025-08-26T22:31:45.131Z","repository":{"id":56771483,"uuid":"516046289","full_name":"krupkat/xpano","owner":"krupkat","description":"Automated photo stiching tool. Lets you import a directory of images and then export the autodetected panoramas.","archived":false,"fork":false,"pushed_at":"2024-07-28T15:30:52.000Z","size":6484,"stargazers_count":217,"open_issues_count":10,"forks_count":15,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-08-31T10:01:57.685Z","etag":null,"topics":["cpp","imgui","imgui-sdl","opencv","panorama","panorama-stitching","sdl"],"latest_commit_sha":null,"homepage":"https://krupkat.github.io/xpano/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krupkat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-20T15:57:19.000Z","updated_at":"2024-08-31T07:31:01.000Z","dependencies_parsed_at":"2024-06-09T21:29:43.868Z","dependency_job_id":"6dd6fbc9-3c43-4c89-ac92-074ef4555639","html_url":"https://github.com/krupkat/xpano","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krupkat%2Fxpano","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krupkat%2Fxpano/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krupkat%2Fxpano/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krupkat%2Fxpano/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krupkat","download_url":"https://codeload.github.com/krupkat/xpano/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231088615,"owners_count":18326247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","imgui","imgui-sdl","opencv","panorama","panorama-stitching","sdl"],"created_at":"2024-08-31T10:00:38.098Z","updated_at":"2025-08-26T22:31:45.113Z","avatar_url":"https://github.com/krupkat.png","language":"C++","readme":"[![tests](https://github.com/krupkat/xpano/actions/workflows/test.yml/badge.svg)](https://github.com/krupkat/xpano/actions/workflows/test.yml)\n[![clang-format](https://github.com/krupkat/xpano/actions/workflows/clang-format-check.yml/badge.svg)](https://github.com/krupkat/xpano/actions/workflows/clang-format-check.yml)\n[![clang-tidy](https://github.com/krupkat/xpano/actions/workflows/clang-tidy-check.yml/badge.svg)](https://github.com/krupkat/xpano/actions/workflows/clang-tidy-check.yml)\n\n# xpano\n\nXpano is a tool for panorama stitching with focus on simplicity and ease of use, major features include:\n\n- Auto detection of groups of images that can be stitched into panoramas\n- Preview + zoom + pan of the computed panoramas\n- Crop mode, boundary auto fill, selectable projection types\n- Projection adjustments: pitch, yaw and roll\n- Export of full resolution panoramas including exif metadata\n\n\n## Built with\n\nThe app uses the excellent [OpenCV](https://opencv.org/) library for image manipulation and its [stitching](https://docs.opencv.org/4.x/d1/d46/group__stitching.html) module for computing the panoramas.\n\nOther dependencies include [imgui](https://github.com/ocornut/imgui), [SDL](https://github.com/libsdl-org/SDL), [spdlog](https://github.com/gabime/spdlog/), [Catch2](https://github.com/catchorg/Catch2), [nativefiledialog-extended](https://github.com/btzy/nativefiledialog-extended), [alpaca](https://github.com/p-ranav/alpaca), [thread-pool](https://github.com/bshoshany/thread-pool), [expected](https://github.com/TartanLlama/expected), [Exiv2](https://github.com/Exiv2/exiv2), [multiblend](https://horman.net/multiblend/), [SIMDe](https://github.com/simd-everywhere/simde) and the [Google Noto](https://fonts.google.com/noto) fonts.\n\n## Demo\n\nCheck out the demo on [YouTube](https://youtu.be/MyiTC3i1hK0).\n\n![Main Xpano gui](https://gist.githubusercontent.com/krupkat/55ca0f085c944fb1ea2a7dc2a779f141/raw/f90afd675b1c0430db06a46984cbe5309908ddc1/1.webp)\n\n## Installation\n\nInstall directly from Flathub or the Microsoft Store:\n\n\u003ca href='https://flathub.org/apps/details/cz.krupkat.Xpano'\u003e\u003cimg height='70' alt='Download from Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href='https://apps.microsoft.com/store/detail/9PGQ5X33L0SC?launch=true\u0026mode=full'\u003e\u003cimg height='70' alt='Download from the Microsoft Store' src='https://get.microsoft.com/images/en-US%20dark.svg'/\u003e\u003c/a\u003e\n\nGet additional packages:\n\n- Windows and MacOS executables from [GitHub](https://github.com/krupkat/xpano/releases)\n- Ubuntu packages from my [Launchpad PPA](https://launchpad.net/~krupkat/+archive/ubuntu/code)\n- Nix packages from [nixpkgs](https://search.nixos.org/packages?channel=unstable\u0026show=xpano)\n- Archlinux AUR: [xpano-git](https://aur.archlinux.org/packages/xpano-git)\n\n## Command line\n\nXpano has basic CLI support, you can either run it fully automatic in the command line, or launch to gui with the `--gui` flag.\n\n```\nXpano [\u003cinput files\u003e] [--output=\u003cpath\u003e] [--gui] [--help] [--version]\n```\n\n## Development\n\nThe 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.\n\n### NixOS\n\nRun the build script from the root of the repository:\n\n```\nnix-shell misc/build/nix/default.nix\n./misc/build/build-nixos.sh\n```\n\nPossible issues when running - [troubleshooting](https://gist.github.com/krupkat/cd0adbd584e2bfe154accdb393076fc3).\n\n### MacOS\n\nLibrary prerequisites: SDL2, spdlog, catch2\n\nInstall with brew: `brew install sdl2 spdlog catch2`\n\nInstall with macports: `sudo port install libsdl2 spdlog catch2` (for details: [#96](https://github.com/krupkat/xpano/pull/96#issuecomment-1575589249))\n\nRun the build script from the root of the repository:\n\n```\n./misc/build/build-macos.sh\n```\n\n### Ubuntu 24.04\n\nLibrary prerequisites:\n\n```\nsudo apt install libgtk-3-dev libopencv-dev libsdl2-dev libspdlog-dev catch2\n```\n\nRun the build script from the root of the repository:\n\n```\n./misc/build/build-ubuntu-24.sh\n```\n\n### Ubuntu 22.04\n\nLibrary prerequisites:\n\n```\nsudo apt install libgtk-3-dev libopencv-dev libsdl2-dev libspdlog-dev\n```\n\nRun the build script from the root of the repository:\n\n```\n./misc/build/build-ubuntu-22.sh\n```\n\n### Windows\n\nOpen the \"Developer PowerShell for VS 2022\" profile in Windows Terminal and run the build script from the root of the repository:\n\n```\n./misc/build/build-windows-latest.ps1\n```\n\n## Contributions\n\nContributions are more than welcome, there is a couple of ideas for enhancements in [open issues](https://github.com/krupkat/xpano/issues) which you could take on - if you start working on one of them, please add a comment there. \n\nPlease check the [contribution guidelines](https://github.com/krupkat/xpano/blob/main/CONTRIBUTING.md) for further details regarding formatting and coding style.\n\n## License\n\nDistributed under the *GPL-3.0-or-later* license. See the full [license text](https://github.com/krupkat/xpano/blob/main/LICENSE) for more information.\n\n## Contact\n\nTomas Krupka - [krupkat.cz](https://krupkat.cz)\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrupkat%2Fxpano","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrupkat%2Fxpano","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrupkat%2Fxpano/lists"}