# Natural Image Stitching with the Global Similarity Prior
### [[Project page]](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/) [[Paper]](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/ECCV-2016-NISwGSP.pdf) [[Supplementary]](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/ECCV-2016-NISwGSP-supplementary-material.pdf)
<img src="./images/teaser.jpg" width="100%"/>
This repository is our C++ implementation of the **ECCV 2016** paper, **Natural Image Stitching with the Global Similarity Prior**. If you use any code or data from our work, please cite our paper.
### Download
1. [Poster](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/Poster.pdf), [Short Presentation](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/Short-Presentation.pdf) and [Thesis Presentation](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/Thesis-Presentation.pdf)
2. [Paper](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/ECCV-2016-NISwGSP.pdf)
3. [Supplementary](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/ECCV-2016-NISwGSP-supplementary-material.pdf)
* We tested four state-of-the-art methods and ours on 42 sets of images in same setting (grid size, feature points and parameters).
4. [Input-42-data](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/input-42-data.zip)
5. [All our results](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/0_results.zip)
### Ubuntu Version
If you want to build this project under **Ubuntu**, please refer to https://github.com/Yannnnnnnnnnnn/NISwGSP
Thanks a lot to @Yannnnnnnnnnnn!
### Windows Version (Visual Studio)
If you want to build this project under **Windows**, please refer to https://github.com/firdauslubis88/NISwGSP
Thanks a lot to @firdauslubis88!
### Usage
1. Download code and compile.
* You need **Eigen**, **VLFeat**, **OpenCV 3.0.0** and [**OpenMP**](https://github.com/nothinglo/NISwGSP/issues/8) (if you don't need to use omp.h, you can ignore it.)
* My GCC_VRSION is Apple LLVM 6.0
```
GCC_C_LANGUAGE_STANDARD = GNU99 [-std=gnu99]
CLANG_CXX_LANGUAGE_STANDARD = GNU++14 [-std=gnu++14]
CLANG_CXX_LIBRARY = libc++ (LLVM C++ standard library with C++11 support)
```
* My Eigen version is 3.2.7 (development branch). You need to make sure you can use "LeastSquaresConjugateGradient" class.
2. Download [input-42-data](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/input-42-data.zip).
* 42 sets of images: 6 from [1], 3 from [2], 3 from [3], 7 from [4], 4 from [5] and 19 collected by ourselves.
3. Move **[input-42-data]** folder to your working directory.
4. Run the command:
```
./exe folder_name_in_[input-42-data]_folder
```
The results can be found in **[0_results]** folder under **[input-42-data]** folder.
5. Optional:
* You can control the parameters in **Configure.h** or **xxx-STITCH-GRAPH.txt**
### Results
#### More natural:
<table>
<tr>
<th>AutoStitch</th>
<th>Ours</th>
<th>Ours(border)</th>
</tr>
<tr>
<td><img src="./images/SPHP-building-result/SPHP-building-[AutoStitch][BLEND_LINEAR].png"/></td>
<td><img src="./images/SPHP-building-result/SPHP-building-[NISwGSP][3D][BLEND_LINEAR].png"/></td>
<td><img src="./images/SPHP-building-result/SPHP-building-[NISwGSP][3D][BLEND_LINEAR][Border].png"/></td>
</tr>
<tr>
<td><img src="./images/CAVE-church-result/CAVE-church-[AutoStitch][2D][BLEND_LINEAR].png"/></td>
<td><img src="./images/CAVE-church-result/CAVE-church-[NISwGSP][2D][BLEND_LINEAR].png"/></td>
<td><img src="./images/CAVE-church-result/CAVE-church-[NISwGSP][2D][BLEND_LINEAR][Border].png"/></td>
</tr>
</table>
<table>
<tr>
<th>AutoStitch</th>
<th>AANAP</th>
<th>Ours</th>
</tr>
<tr>
<td width="33%"><img src="./images/NISwGSP-03_SantaMaria-all-result/NISwGSP-03_SantaMaria-all-[AutoStitch][BLEND_AVERAGE].png"/></td>
<td width="33%"><img src="./images/NISwGSP-03_SantaMaria-all-result/NISwGSP-03_SantaMaria-all-[AANAP][BLEND_AVERAGE].png"/></td>
<td width="33%"><img src="./images/NISwGSP-03_SantaMaria-all-result/NISwGSP-03_SantaMaria-all-[NISwGSP][2D][BLEND_AVERAGE].png"/></td>
</tr>
</table>
<table>
<tr>
<th>AutoStitch</th>
<th>AANAP</th>
</tr>
<tr>
<td width="50%"><img src="./images/NISwGSP-08_SienaCathedralLibrary3-result/NISwGSP-08_SienaCathedralLibrary3-[AutoStitch][BLEND_LINEAR].png"/></td>
<td width="50%"><img src="./images/NISwGSP-08_SienaCathedralLibrary3-result/NISwGSP-08_SienaCathedralLibrary3-[AANAP][BLEND_LINEAR].png"/></td>
</tr>
<tr>
<th>Ours(2D)</th>
<th>Ours(3D)</th>
</tr>
<tr>
<td width="50%"><img src="./images/NISwGSP-08_SienaCathedralLibrary3-result/NISwGSP-08_SienaCathedralLibrary3-[NISwGSP][2D][BLEND_LINEAR].png"/></td>
<td width="50%"><img src="./images/NISwGSP-08_SienaCathedralLibrary3-result/NISwGSP-08_SienaCathedralLibrary3-[NISwGSP][3D][BLEND_LINEAR].png"/></td>
</tr>
</table>
#### Stitching of 20 images:
<table>
<tr>
<th>AANAP</th>
<th>Ours</th>
</tr>
<tr>
<td width="50%"><img src="./images/CAVE-times_square-result/CAVE-times_square-[AANAP][BLEND_AVERAGE].png"/></td>
<td width="50%"><img src="./images/CAVE-times_square-result/CAVE-times_square-[NISwGSP][2D][BLEND_AVERAGE].png"/></td>
</tr>
</table>
#### Stitching of 35 images:
<table>
<tr>
<th>AANAP</th>
<th>Ours(2D)</th>
<th>Ours(3D)</th>
</tr>
<tr>
<td width="33%"><img src="./images/CAVE-atrium-result/CAVE-atrium-[AANAP][BLEND_AVERAGE].png"/></td>
<td width="33%"><img src="./images/CAVE-atrium-result/CAVE-atrium-[NISwGSP][2D][BLEND_AVERAGE].png"/></td>
<td width="33%"><img src="./images/CAVE-atrium-result/CAVE-atrium-[NISwGSP][3D][BLEND_AVERAGE].png"/></td>
</tr>
</table>
#### Our method can be used to empower other methods with APAP’s alignment capability:
<table>
<tr>
<th>AutoStitch</th>
<th>AutoStitch + Ours</th>
<th>Ours</th>
</tr>
<tr>
<td width="33%"><img src="./images/DHW-temple-result/DHW-temple-[AutoStitch][BLEND_AVERAGE].png"/></td>
<td width="33%"><img src="./images/DHW-temple-result/DHW-temple-[UG_AutoStitch][BLEND_AVERAGE].png"/></td>
<td width="33%"><img src="./images/DHW-temple-result/DHW-temple-[NISwGSP][3D][BLEND_AVERAGE].png"/></td>
</tr>
</table>
### Debug mode
You can disable debug mode by adding **NDEBUG** macro. Otherwise you will see the intermediate which is located in the **[1_debugs]** folder under **[input-42-data]**. You can download [all intermediate data](https://www.cmlab.csie.ntu.edu.tw/project/stitching-wGSP/1_debugs.zip). The intermediate example:
<table>
<tr>
<th>Border</th>
<th>Mesh</th>
</tr>
<tr>
<td><img src="./images/DHW-temple-result/DHW-temple-[NISwGSP][3D][BLEND_LINEAR][Border].png"/></td>
<td><img src="./images/DHW-temple-result/DHW-temple-[NISwGSP][3D][BLEND_LINEAR][Mesh].png"/></td>
</tr>
</table>
<table>
<tr>
<th>Initial Features</th>
<th>After sRANSAC</th>
</tr>
<tr>
<td><img src="./images/DHW-temple-result/feature_pairs-init-4-5-345.jpg"/></td>
<td><img src="./images/DHW-temple-result/feature_pairs-sRANSAC-4-5-273.jpg"/></td>
</tr>
</table>
<table>
<tr>
<th>Line Data 1</th>
<th>Line Data 2</th>
</tr>
<tr>
<td><img src="./images/DHW-temple-result/line-result-4.jpg"/></td>
<td><img src="./images/DHW-temple-result/line-result-5.jpg"/></td>
</tr>
</table>
### Speed
If you want to speed up, **MATLAB** solver is significantly faster than **Eigen**.
### Publication
[Yu-Sheng Chen](https://www.cmlab.csie.ntu.edu.tw/~nothinglo/) and [Yung-Yu Chuang](https://www.csie.ntu.edu.tw/~cyy/).
[National Taiwan University](https://www.ntu.edu.tw)
Natural Image Stitching with Global Similarity Prior.
Proceedings of European Conference on Computer Vision 2016 (ECCV 2016), Part V, pp. 186-201, October 2016, Amsterdam, Netherland.
### Citation
```
@INPROCEEDINGS{Chen:2016:NIS,
AUTHOR = {Y
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
NISwGSP (natural image stitching with the global similarity prior)算法采用局部扭曲模型,用网格网格引导每个图像的变形。目标函数用于指定经线的所需特征。除了良好的对齐和最小的局部失真之外,我们还在目标函数中添加了全局相似性。该先验约束每个图像的扭曲,使其类似于整体的相似变换。选择相似性变换对结果的自然性至关重要。我们提出了为每个图像选择合适的比例和旋转的方法。所有图像的扭曲被一起解决,以最小化全局失真。
资源推荐
资源详情
资源评论
收起资源包目录
NISwGSP (natural image stitching with the global similarity prior)算法 (609个子文件)
sift.1 5KB
mser.1 4KB
vlfeat.7 3KB
vlfeat.bib 7KB
covdet.c 110KB
kmeans.c 71KB
sift.c 70KB
svm.c 67KB
generic.c 56KB
gmm.c 52KB
hog.c 37KB
kdtree.c 34KB
imopv.c 34KB
mser.c 30KB
scalespace.c 28KB
mathop.c 28KB
vl_covdet.c 28KB
sift.c 26KB
dsift.c 24KB
vl_svmtrain.c 22KB
aib.c 21KB
liop.c 21KB
homkermap.c 19KB
fisher.c 19KB
vl_alldist2.c 17KB
mser.c 17KB
host.c 16KB
vl_sift.c 14KB
quickshift.c 14KB
slic.c 14KB
stringop.c 13KB
pgm.c 13KB
mathop_sse2.c 12KB
lbp.c 12KB
svmdataset.c 12KB
vl_gmm.c 12KB
vl_kmeans.c 11KB
vlad.c 10KB
vl_dsift.c 10KB
vl_hog.c 10KB
vl_imsmooth.c 10KB
vl_mser.c 9KB
getopt_long.c 9KB
rodrigues.c 9KB
hikmeans.c 9KB
vl_ubcmatch.c 9KB
random.c 8KB
test_gmm.c 8KB
ikmeans.c 8KB
imopv_sse2.c 8KB
vl_aib.c 7KB
vl_siftdescriptor.c 7KB
vl_localmax.c 7KB
mathop_avx.c 6KB
vl_ihashsum.c 6KB
vl_inthist.c 6KB
vl_hikmeanspush.c 6KB
vl_imwbackwardmx.c 6KB
vl_hikmeans.c 6KB
vl_kdtreebuild.c 6KB
vl_alldist.c 6KB
vl_homkermap.c 6KB
array.c 6KB
vl_erfill.c 6KB
vl_fisher.c 5KB
vl_liop.c 5KB
vl_twister.c 5KB
vl_vlad.c 5KB
vl_kdtreequery.c 4KB
vl_ihashfind.c 4KB
vl_ikmeans.c 4KB
vl_slic.c 4KB
vl_aibhist.c 4KB
test_heap-def.c 4KB
vl_imdisttf.c 4KB
vl_binsum.c 4KB
vl_quickshift.c 4KB
vl_cummax.c 4KB
test_stringop.c 4KB
vl_ikmeanspush.c 4KB
vl_sampleinthist.c 3KB
vl_imintegral.c 3KB
test_imopv.c 3KB
vl_lbp.c 2KB
test_threads.c 2KB
test_getopt_long.c 2KB
vl_irodr.c 2KB
vl_rodr.c 2KB
test_svd2.c 2KB
vl_tpsumx.c 2KB
vl_binsearch.c 2KB
test_vec_comp.c 2KB
test_kmeans.c 2KB
vl_version.c 2KB
test_mathop.c 2KB
aib.c 1KB
test_mathop_abs.c 1KB
vl_threads.c 995B
vl_simdctrl.c 985B
test_sqrti.c 941B
共 609 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
- robot19922020-10-01数据集有吗
weixin_40755515
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功