{"id":19256768,"url":"https://github.com/markmohr/imagestitching","last_synced_at":"2025-04-21T15:31:05.379Z","repository":{"id":110991216,"uuid":"155814562","full_name":"MarkMoHR/ImageStitching","owner":"MarkMoHR","description":"A CV project, based on cimg library to deal with simple Image Stitching task.","archived":false,"fork":false,"pushed_at":"2018-11-02T07:22:39.000Z","size":10058,"stargazers_count":52,"open_issues_count":0,"forks_count":21,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T14:14:30.729Z","etag":null,"topics":["cimg-library","image-blending","image-stitching","opencv","stitching"],"latest_commit_sha":null,"homepage":"https://blog.csdn.net/qq_33000225/article/details/70906106","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarkMoHR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-11-02T04:35:40.000Z","updated_at":"2024-11-20T06:30:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"742dd7f2-2605-4fae-a020-d77554f528e7","html_url":"https://github.com/MarkMoHR/ImageStitching","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkMoHR%2FImageStitching","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkMoHR%2FImageStitching/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkMoHR%2FImageStitching/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkMoHR%2FImageStitching/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkMoHR","download_url":"https://codeload.github.com/MarkMoHR/ImageStitching/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250080559,"owners_count":21371527,"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":["cimg-library","image-blending","image-stitching","opencv","stitching"],"created_at":"2024-11-09T19:07:02.177Z","updated_at":"2025-04-21T15:31:03.155Z","avatar_url":"https://github.com/MarkMoHR.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ImageStitching\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/singles.png)\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/blendedImg0.png)\n\n\n## 1. Requirements\n- Windows10 + VS2015\n- C++\n- cimg library : http://www.cimg.eu/\n- opencv (For extracting features of images)\n\n---\n\n## 2. Main Procedure\n1. Image **feature extraction** with `SIFT` algorithm\n1. Image feature points **matching** with `RANSAC` algorithm\n1. Image **blending** with matched feature points\n\n---\n\n## 3. Intermediate Results\n\n#### 1) Image feature extraction with `SIFT` algorithm\n\u003e relevant code: `MySift.h` and `MySift.cpp`\n- results of key feature points (each with a feature descriptor of 128 dimention) of two images:\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/kps.png)\n\n#### 2) Image feature points **matching** with `RANSAC` algorithm\n\u003e relevant code: `MyMatching.h` and `MyMatching.cpp`\n- First do a *coarse-grained* feature points matching by calculating the distance of two feature descriptors, and regard the two points as matched if the distance is lower than some threshold. The matched points are lined together as shown below:\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/kps_real.png)\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/mixImgWithLine.png)\n\n- Clearly there exist many outliers, which can be removed by `RANSAC` algorithm as shown below. The algorithm works on selecting the main transforming direction with most inliers:\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/ransac.png)\n\n- Removed the outliers which are conflicted with the selected transforming direction:\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/mixImgWithLine_fixed.png)\n\n#### 3) Image **blending** with matched feature points\n\u003e relevant code: `MyBlending.h` and `MyBlending.cpp`\n- First use a simple translation method:\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/mixImg.png)\n\nbecomes\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/blended.png)\n\n- Then apply a RGB interpolation at fusion region `A/B`:\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/blend.png)\n\n- Stitched Result of two images\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/blendedImg.png)\n\n- Repeat this procedure and get the stitched Result of all images\n\n![Image text](https://github.com/MarkMoHR/ImageStitching/raw/master/figures/blendedImg0.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkmohr%2Fimagestitching","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkmohr%2Fimagestitching","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkmohr%2Fimagestitching/lists"}