Skip to content

Commit f80f1ed

Browse files
Updated README.md
1 parent ee109e8 commit f80f1ed

File tree

1 file changed

+45
-49
lines changed

1 file changed

+45
-49
lines changed

README.md

Lines changed: 45 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,60 @@
44
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
55

66

7-
# Boiler plate for C++ projects
7+
## Introduction
88

9-
This is a boiler plate for C++ projects. What you get:
9+
In this project we reconstruct a 3D scene and simultaneously obtain the camera poses of a monocular camera w.r.t. the given scene. This procedure is known as Structure from Motion (SfM). As the name suggests, you are creating the entire rigid structure from a set of images with different view points (or equivalently a camera in motion).
1010

11-
- Sources, headers and mains separated in distinct folders
12-
- Use of modern [CMake](https://cmake.org/) for much easier compiling
13-
- Setup for tests using [doctest](https://github.com/onqtam/doctest)
14-
- Continuous testing with [Travis-CI](https://travis-ci.org/) and [Appveyor](https://www.appveyor.com), with support for C++17.
15-
- Code coverage reports, including automatic upload to [Coveralls.io](https://coveralls.io/) and/or [Codecov.io](https://codecov.io)
16-
- Code documentation with [Doxygen](http://www.stack.nl/~dimitri/doxygen/)
11+
A few years ago, Agarwal et. al published Building Rome in a Day in which they reconstructed the entire city just by using a large collection of photos from the Internet.
12+
13+
There are a few steps that collectively form SfM:
14+
15+
- Feature Matching and Outlier rejection using RANSAC
16+
- Estimating Fundamental Matrix
17+
- Estimating Essential Matrix from Fundamental Matrix
18+
- Estimate Camera Pose from Essential Matrix
19+
- Check for Cheirality Condition using Triangulation
20+
- Perspective-n-Point
21+
- Bundle Adjustment
1722

1823
## Authors
1924
- Aditya Vaishampayan
2025
- Amrish Baskaran
2126

27+
## License
28+
License file can be found [here](https://github.com/adityavaishampayan/SFM_cpp/blob/master/LICENSE)
29+
30+
```
31+
MIT License
32+
33+
Copyright (c) 2018 Aditya Vaishampayan, Amrish Bhaskaran
34+
35+
Permission is hereby granted, free of charge, to any person obtaining a copy
36+
of this software and associated documentation files (the "Software"), to deal
37+
in the Software without restriction, including without limitation the rights
38+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
39+
copies of the Software, and to permit persons to whom the Software is
40+
furnished to do so, subject to the following conditions:
41+
42+
The above copyright notice and this permission notice shall be included in all
43+
copies or substantial portions of the Software.
44+
45+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
46+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
47+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
48+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
49+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
50+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
51+
SOFTWARE.
52+
```
53+
2254
## Development Process
2355
This module will be developed using the Solo Iterative Process(SIP), Test Driven Development and agile development in a 3 week sprint method.
2456
The spreadsheet for the Product log, iteration backlog, work log and sprint details can be found in this link-[Agile Development Spreadsheet](https://docs.google.com/spreadsheets/d/1gTq1l9RCe6zuMW0L57cpaaCt8EEMOVuNtgeplXd2HEI/edit?usp=sharing)
2557

2658
Notes from the sprint review sessions can be found in the link-[Sprint review Doc](https://docs.google.com/document/d/1T2uCC2Ef_-l1TtSUzq2ocHxJed9Jsc1g0zjSTBZt-sQ/edit?usp=sharing)
2759

60+
2861
## Structure
2962
``` text
3063
.
@@ -69,37 +102,10 @@ target_link_libraries(main PRIVATE ${LIBRARY_NAME}) # Link the executable to li
69102
You can find the example source code that builds the `main` executable in [app/main.cpp](app/main.cpp) under the `Build` section in [CMakeLists.txt](CMakeLists.txt).
70103
If the executable you made does not use the library in [src/](src), then only the first line is needed.
71104

72-
## License
73-
License file can be found [here](https://github.com/adityavaishampayan/SFM_cpp/blob/master/LICENSE)
74-
75-
```
76-
MIT License
77-
78-
Copyright (c) 2018 Aditya Vaishampayan, Amrish Bhaskaran
79-
80-
Permission is hereby granted, free of charge, to any person obtaining a copy
81-
of this software and associated documentation files (the "Software"), to deal
82-
in the Software without restriction, including without limitation the rights
83-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
84-
copies of the Software, and to permit persons to whom the Software is
85-
furnished to do so, subject to the following conditions:
86-
87-
The above copyright notice and this permission notice shall be included in all
88-
copies or substantial portions of the Software.
89-
90-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
91-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
92-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
93-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
94-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
95-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
96-
SOFTWARE.
97-
```
98105
## Dependencies
99106
Simple starter C++ project with:
100107

101108
- OpenCV - (OpenCV uses a BSD license and hence can be used for production with modification to the code.)
102-
- cmake
103109
- googletest [Gtest](http://wiki.ros.org/gtest)
104110
- Travis CI [Documentation](https://docs.travis-ci.com/user/for-beginners/)
105111
- Coveralls [Documentation](https://docs.coveralls.io/about-coveralls)
@@ -225,16 +231,17 @@ The result is a fresh Git repository with one commit adding all files from the b
225231
## Doxygen Documentation
226232

227233
The doxygen documentation can be generated manually using the following commands
228-
- Installation
234+
-
235+
236+
Installation
229237
```
230238
sudo apt-get install doxygen
231239
sudo apt-get install doxygen-gui
232240
```
233-
- Open Doxywizard and follow the instructions to generate the required files
241+
Open Doxywizard and follow the instructions to generate the required files
234242
```
235243
doxywizard
236244
```
237-
238245
Or one can also follow the steps given below:
239246

240247
Doxygen Documentation generation steps:
@@ -259,17 +266,6 @@ doxygen <config_file_name>
259266

260267
## Plugins
261268

262-
- CppChEclipse
263-
264-
To install and run cppcheck in Eclipse
265-
266-
1. In Eclipse, go to Window -> Preferences -> C/C++ -> cppcheclipse.
267-
Set cppcheck binary path to "/usr/bin/cppcheck".
268-
269-
2. To run CPPCheck on a project, right click on the project name in the Project Explorer
270-
and choose cppcheck -> Run cppcheck.
271-
272-
273269
- Google C++ Sytle
274270

275271
To include and use Google C++ Style formatter in Eclipse

0 commit comments

Comments
 (0)