<h1 align="center"> libSGM </h1>
<h4 align="center">Semi-Global Matching algorithm.</h4>
<p align="center">
<a href="https://github.com/CNES/Pandora_libSGM/actions"><img src="https://github.com/CNES/Pandora_libSGM/actions/workflows/libsgm_ci.yml/badge.svg?branch=master"></a>
<a href="https://codecov.io/gh/CNES/Pandora_libSGM"> <img src="https://codecov.io/gh/CNES/Pandora_libSGM/branch/master/graph/badge.svg?token=OZCYI843JH"/></a>
<a href="https://opensource.org/licenses/Apache-2.0/"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a>
</p>
<p align="center">
<a href="#overview">Overview</a> •
<a href="#install">Install</a> •
<a href="#usage">Usage</a> •
<a href="#related">Related</a> •
<a href="#references">References</a>
</p>
## Overview
C++ implementation of Semi-Global Matching (SGM) algorithm that is wrapped with cython to provide a `libsgm` python module based on [[Hirschmuller, 2008]](#1.), [[Ernst, Ines & Hirschmüller, 2008]](#2.) and [[Hirschmüller, Buder & Ernst, 2012]](#3.).
## Install
**libsgm** is available on Pypi and can be installed by:
```bash
pip install numpy
pip install libsgm
```
## Usage
libSGM must be used as a package :
```python
from libSGM import sgm_wrapper
...
cost_volumes_out = sgm_wrapper.sgm_api(cost_volume_in, p1, p2, directions, invalid_value, False, False)
```
Let's see [pandora_plugin_LibSGM](https://github.com/CNES/pandora_plugin_libsgm) for real life exemple.
## Related
[Pandora](https://github.com/CNES/Pandora) - A stereo matching framework
[Plugin_LibSGM](https://github.com/CNES/pandora_plugin_libsgm) - Stereo Matching Algorithm plugin for Pandora
## References
Please cite the following paper when using libsgm:
*Cournet, M., Sarrazin, E., Dumas, L., Michel, J., Guinet, J., Youssefi, D., Defonte, V., Fardet, Q., 2020. Ground-truth generation and disparity estimation for optical satellite imagery. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences.*
<a id="1.">[Hirschmuller, 2008]</a>
*H. Hirschmuller, "Stereo Processing by Semiglobal Matching and Mutual Information," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 30, no. 2, pp. 328-341, Feb. 2008. doi: 10.1109/TPAMI.2007.1166*
<a id="2.">[Ernst, Ines & Hirschmüller, 2008]</a>
*Ernst, Ines & Hirschmüller, Heiko. (2008). Mutual Information Based Semi-Global Stereo Matching on the GPU. Proceedings of the International Symposium on Visual Computing. 5358. 10.1007/978-3-540-89639-5_22.*
<a id="3.">[Hirschmüller, Buder & Ernst, 2012]</a>
*Hirschmüller, Heiko & Buder, Maximilian & Ernst, Ines. (2012). Memory Efficient Semi-Global Matching. ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences. I-3. 10.5194/isprsannals-I-3-371-2012.*
Raw data
{
"_id": null,
"home_page": "https://github.com/CNES/Pandora_libsgm",
"name": "libSGM",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "",
"author": "CNES",
"author_email": "myriam.cournet@cnes.fr",
"download_url": "https://files.pythonhosted.org/packages/5f/d9/cc5d6432012c6ae9017bccc48224648cc5f8dc70596ee49608eabd341578/libSGM-0.4.5.tar.gz",
"platform": null,
"description": "<h1 align=\"center\"> libSGM </h1>\n\n<h4 align=\"center\">Semi-Global Matching algorithm.</h4>\n\n<p align=\"center\">\n <a href=\"https://github.com/CNES/Pandora_libSGM/actions\"><img src=\"https://github.com/CNES/Pandora_libSGM/actions/workflows/libsgm_ci.yml/badge.svg?branch=master\"></a>\n <a href=\"https://codecov.io/gh/CNES/Pandora_libSGM\"> <img src=\"https://codecov.io/gh/CNES/Pandora_libSGM/branch/master/graph/badge.svg?token=OZCYI843JH\"/></a>\n <a href=\"https://opensource.org/licenses/Apache-2.0/\"><img src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\"></a>\n</p>\n\n<p align=\"center\">\n <a href=\"#overview\">Overview</a> \u2022\n <a href=\"#install\">Install</a> \u2022\n <a href=\"#usage\">Usage</a> \u2022\n <a href=\"#related\">Related</a> \u2022\n <a href=\"#references\">References</a>\n</p>\n\n## Overview\n\nC++ implementation of Semi-Global Matching (SGM) algorithm that is wrapped with cython to provide a `libsgm` python module based on [[Hirschmuller, 2008]](#1.), [[Ernst, Ines & Hirschm\u00fcller, 2008]](#2.) and [[Hirschm\u00fcller, Buder & Ernst, 2012]](#3.).\n\n## Install\n\n**libsgm** is available on Pypi and can be installed by:\n\n```bash\npip install numpy\npip install libsgm\n```\n\n## Usage\n\nlibSGM must be used as a package :\n\n```python\nfrom libSGM import sgm_wrapper\n...\ncost_volumes_out = sgm_wrapper.sgm_api(cost_volume_in, p1, p2, directions, invalid_value, False, False)\n```\n\nLet's see [pandora_plugin_LibSGM](https://github.com/CNES/pandora_plugin_libsgm) for real life exemple.\n\n## Related\n\n[Pandora](https://github.com/CNES/Pandora) - A stereo matching framework \n[Plugin_LibSGM](https://github.com/CNES/pandora_plugin_libsgm) - Stereo Matching Algorithm plugin for Pandora \n\n## References\n\nPlease cite the following paper when using libsgm: \n*Cournet, M., Sarrazin, E., Dumas, L., Michel, J., Guinet, J., Youssefi, D., Defonte, V., Fardet, Q., 2020. Ground-truth generation and disparity estimation for optical satellite imagery. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences.*\n\n<a id=\"1.\">[Hirschmuller, 2008]</a> \n*H. Hirschmuller, \"Stereo Processing by Semiglobal Matching and Mutual Information,\" in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 30, no. 2, pp. 328-341, Feb. 2008. doi: 10.1109/TPAMI.2007.1166*\n\n<a id=\"2.\">[Ernst, Ines & Hirschm\u00fcller, 2008]</a> \n*Ernst, Ines & Hirschm\u00fcller, Heiko. (2008). Mutual Information Based Semi-Global Stereo Matching on the GPU. Proceedings of the International Symposium on Visual Computing. 5358. 10.1007/978-3-540-89639-5_22.*\n\n<a id=\"3.\">[Hirschm\u00fcller, Buder & Ernst, 2012]</a> \n*Hirschm\u00fcller, Heiko & Buder, Maximilian & Ernst, Ines. (2012). Memory Efficient Semi-Global Matching. ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences. I-3. 10.5194/isprsannals-I-3-371-2012.*\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "libSGM is a CNES version of H.Hirschmuller Semi-Global Matching",
"version": "0.4.5",
"project_urls": {
"Homepage": "https://github.com/CNES/Pandora_libsgm"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5fd9cc5d6432012c6ae9017bccc48224648cc5f8dc70596ee49608eabd341578",
"md5": "5c0945e1ff01d754933a2716ae40d42d",
"sha256": "8bfa94adcee7032c8a73b6b9b4746fd65a81ce733119df6e3866a47837a095a3"
},
"downloads": -1,
"filename": "libSGM-0.4.5.tar.gz",
"has_sig": false,
"md5_digest": "5c0945e1ff01d754933a2716ae40d42d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 484384,
"upload_time": "2024-01-30T14:19:52",
"upload_time_iso_8601": "2024-01-30T14:19:52.221797Z",
"url": "https://files.pythonhosted.org/packages/5f/d9/cc5d6432012c6ae9017bccc48224648cc5f8dc70596ee49608eabd341578/libSGM-0.4.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-30 14:19:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "CNES",
"github_project": "Pandora_libsgm",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "libsgm"
}