https://github.com/markmohr/imagestitching
A CV project, based on cimg library to deal with simple Image Stitching task.
https://github.com/markmohr/imagestitching
cimg-library image-blending image-stitching opencv stitching
Last synced: about 1 year ago
JSON representation
A CV project, based on cimg library to deal with simple Image Stitching task.
- Host: GitHub
- URL: https://github.com/markmohr/imagestitching
- Owner: MarkMoHR
- Created: 2018-11-02T04:35:40.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-11-02T07:22:39.000Z (over 7 years ago)
- Last Synced: 2025-04-01T14:14:30.729Z (about 1 year ago)
- Topics: cimg-library, image-blending, image-stitching, opencv, stitching
- Language: C++
- Homepage: https://blog.csdn.net/qq_33000225/article/details/70906106
- Size: 9.59 MB
- Stars: 52
- Watchers: 2
- Forks: 21
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ImageStitching


## 1. Requirements
- Windows10 + VS2015
- C++
- cimg library : http://www.cimg.eu/
- opencv (For extracting features of images)
---
## 2. Main Procedure
1. Image **feature extraction** with `SIFT` algorithm
1. Image feature points **matching** with `RANSAC` algorithm
1. Image **blending** with matched feature points
---
## 3. Intermediate Results
#### 1) Image feature extraction with `SIFT` algorithm
> relevant code: `MySift.h` and `MySift.cpp`
- results of key feature points (each with a feature descriptor of 128 dimention) of two images:

#### 2) Image feature points **matching** with `RANSAC` algorithm
> relevant code: `MyMatching.h` and `MyMatching.cpp`
- 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:


- 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:

- Removed the outliers which are conflicted with the selected transforming direction:

#### 3) Image **blending** with matched feature points
> relevant code: `MyBlending.h` and `MyBlending.cpp`
- First use a simple translation method:

becomes

- Then apply a RGB interpolation at fusion region `A/B`:

- Stitched Result of two images

- Repeat this procedure and get the stitched Result of all images
