Skip to content

Commit 066137d

Browse files
committed
Make MSVS project files free from MSVS version
1 parent d4992a8 commit 066137d

28 files changed

Lines changed: 363 additions & 98 deletions

HOWTO_RUN.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## How to Run Example Codes with Microsoft Visual Studio
2+
3+
### Preparation
4+
* Install [Microsoft Visual Studio](https://www.visualstudio.com/) (shortly MSVS)
5+
* Visual Studio **Community** is _free_ for students, open-source, and individual developers.
6+
* We recommend the most recent version of MSVS (**at least >= 2015**) for [binary compatibility](https://docs.microsoft.com/ko-kr/cpp/porting/binary-compat-2015-2017).
7+
* If you want to use an older version of MSVS (<= 2013), please install [Microsoft Visual C++ Redistributable](https://support.microsoft.com/help/2977003/) for 2015-2019 (x64). Additionally please remember that you can only build examples in _release_ mode, not _debug_ mode.
8+
* Download [example codes](https://github.com/sunglok/3dv_tutorial/archive/master.zip), [OpenCV binaries](https://github.com/sunglok/3dv_tutorial/releases/download/misc/OpenCV_v4.1.1_MSVS2017_x64.zip), and [Ceres Solver binaries](https://github.com/sunglok/3dv_tutorial/releases/download/misc/CeresSolver_v1.4.0_MSVS2019_x64.zip)
9+
10+
### Running Examples
11+
1. Unzip example codes and binaries at `your_folder`
12+
* OpenCV and Ceres Solver will be located at `your_folder\EXTERNAL` folder. Please ignore duplicated `LICENSE` files.
13+
2. Run your Visual Studio and open the solution file, `your_folder\msvs\3dv_tutorial.sln`
14+
* Or simply double-click `your_folder\msvs\3dv_tutorial.sln` file (if it is associated with MSVS)
15+
3. Build the example codes in the solution (Menu > Build > Build Solution)
16+
* Their executable files will be located at `your_folder\bin` folder.
17+
4. Enjoy the examples

README.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
## An Invitation to 3D Vision: A Tutorial for Everyone
2-
_An Invitation to 3D Vision_ is a introductory tutorial on 3D vision (a.k.a. visual geometry or geometric vision).
2+
_An Invitation to 3D Vision_ is an introductory tutorial on 3D vision (a.k.a. geometric vision or visual geometry or multi-view geometry).
33
It aims to make beginners understand basic theory of 3D vision and implement their own applications using [OpenCV][].
4-
In addition to tutorial slides, we provide a set of example codes. The example codes are written as short as possible (mostly __less than 100 lines__) to improve readability and involve many interesting and practical applications.
4+
In addition to tutorial slides, example codes are provided in the purpose of education. They include simple but interesting and practical applications. The example codes are written as short as possible (mostly __less than 100 lines__) to be clear and easy to understand.
55

66
* Download [tutorial slides](https://github.com/sunglok/3dv_tutorial/releases/download/misc/3dv_slides.pdf)
77
* Download [example codes in a ZIP file](https://github.com/sunglok/3dv_tutorial/archive/master.zip)
8-
* Download [OpenCV binary](https://github.com/sunglok/3dv_tutorial/releases/download/misc/OpenCV_v3.2.0_32bit.zip) and [Ceres Solver binary](https://github.com/sunglok/3dv_tutorial/releases/download/misc/CeresSolver_v1.2.0_32bit.zip) for Windows
8+
* Check [how to run example codes](https://github.com/sunglok/3dv_tutorial/blob/master/HOWTO_RUN.md)
99

1010
### What does its name come from?
11-
* The main title, _An Invitation to 3D Vision_, came from [a legendary book by Yi Ma, Stefano Soatto, Jana Kosecka, and Shankar S. Sastry](http://vision.ucla.edu/MASKS/). We wish that our tutorial will be the first gentle invitation card for beginners in 3D vision and explorers from other fields.
11+
* The main title, _An Invitation to 3D Vision_, came from [a legendary book by Yi Ma, Stefano Soatto, Jana Kosecka, and Shankar S. Sastry](http://vision.ucla.edu/MASKS/). We wish that our tutorial will be the first gentle invitation card for beginners to 3D vision and its applications.
1212
* The subtitle, _for everyone_, was inspired from [Prof. Kim's online lecture](https://hunkim.github.io/ml/) (in Korean). Our tutorial is also intended not only for students and researchers in academia, but also for hobbyists and developers in industries. We tried to describe important and typical problems and their solutions in [OpenCV][]. We hope readers understand it easily without serious mathematical background.
1313

1414
### Examples
1515
* __Single-view Geometry__
1616
* Camera Projection Model
17-
* Object Localization and Measurement: [object_localization.cpp][]
17+
* Object Localization and Measurement: [object_localization.cpp][] (result)
1818
* Image Formation: [image_formation.cpp][] (result: [0](https://drive.google.com/file/d/0B_iOV9kV0whLY2luc05jZGlkZ2s/view?usp=sharing), [1](https://drive.google.com/file/d/0B_iOV9kV0whLS3M4S09ZZHpjTkU/view?usp=sharing), [2](https://drive.google.com/file/d/0B_iOV9kV0whLV2dLZHd0MmVkd28/view?usp=sharing), [3](https://drive.google.com/file/d/0B_iOV9kV0whLS1ZBR25WekpMYjA/view?usp=sharing), [4](https://drive.google.com/file/d/0B_iOV9kV0whLYVB0dm9Fc0dvRzQ/view?usp=sharing))
1919
* Geometric Distortion Correction: [distortion_correction.cpp][] ([result](https://www.youtube.com/watch?v=HKetupWh4V8))
2020
* General 2D-3D Geometry
@@ -38,11 +38,12 @@ In addition to tutorial slides, we provide a set of example codes. The example c
3838
* Structure-from-Motion
3939
* Global SfM: [sfm_global.cpp][]
4040
* Incremental SfM: [sfm_inc.cpp][]
41-
* Visual Odometry
41+
* Feature-based Visual Odometry and SLAM
4242
* Epipolar Version: [visual_odometry_epipolar.cpp][]
4343
* Stereo Version
4444
* PnP and BA Version
45-
* Visual SLAM
45+
* SLAM Version
46+
* Direct Visual Odometry and SLAM
4647
* c.f. The above examples need [Ceres Solver][] for bundle adjustment.
4748
* __Correspondence Problem__
4849
* Line Fitting with RANSAC: [line_fitting_ransac.cpp][]
@@ -53,9 +54,9 @@ In addition to tutorial slides, we provide a set of example codes. The example c
5354

5455
### Dependencies
5556
* [OpenCV][] (> 3.0.0, 3-clause BSD License)
56-
* _OpenCV_ is a base of all example codes for linear algebra, vision algorithms, image/video manipulation, and GUI.
57+
* _OpenCV_ is a base of all example codes for basic computer vision algorithms, linear algebra, image/video manipulation, and GUI.
5758
* [Ceres Solver][] (3-clause BSD License): A numerical optimization library
58-
* _Ceres Solver_ is additionally used by m-estimator, bundle adjustment, visual odometry, and visual SLAM.
59+
* _Ceres Solver_ is additionally used by m-estimator, bundle adjustment, structure-from-motion, and visual odometry/SLAM.
5960

6061
### License
6162
* [Beerware](http://en.wikipedia.org/wiki/Beerware)
@@ -66,12 +67,12 @@ In addition to tutorial slides, we provide a set of example codes. The example c
6667
### Acknowledgement
6768
The authors thank the following contributors and projects.
6869

69-
* [Jae-Yeong Lee](https://sites.google.com/site/roricljy/): We sincerely thank him for motivating many examples and providing [OpenCV][] binaries for Windows.
70-
* [Giseop Kim](https://sites.google.com/view/giseopkim): He contributed the initial version of SfM codes with [cvsba][] and [Toy-SfM](https://github.com/royshil/SfM-Toy-Library).
71-
* [The KITTI Vision Benchmark Suite](http://www.cvlibs.net/datasets/kitti/): We include some of KITTI odometry dataset for demonstrating visual odometry.
72-
* [Russell Hewett](https://courses.engr.illinois.edu/cs498dh3/fa2013/projects/stitching/ComputationalPhotograph_ProjectStitching.html): We include his two hill images for demonstrating image stitching.
73-
* [Kang Li](http://www.cs.cmu.edu/~kangli/code/Image_Stabilizer.html): We include his shaking CCTV video for demonstrating video stabilization.
74-
* [Richard Blais](http://www.richardblais.net/): We include his book cover used in [the OpenCV tutorial](http://docs.opencv.org/3.1.0/dc/d16/tutorial_akaze_tracking.html).
70+
* [Jae-Yeong Lee](https://sites.google.com/site/roricljy/): He motivated many examples.
71+
* [Giseop Kim](https://sites.google.com/view/giseopkim): He contributed the initial version of SfM codes with [Toy-SfM](https://github.com/royshil/SfM-Toy-Library) and [cvsba][https://www.uco.es/investiga/grupos/ava/node/39].
72+
* [The KITTI Vision Benchmark Suite](http://www.cvlibs.net/datasets/kitti/): The KITTI odometry dataset #07 was used to demonstrate visual odometry and SLAM.
73+
* [Russell Hewett](https://courses.engr.illinois.edu/cs498dh3/fa2013/projects/stitching/ComputationalPhotograph_ProjectStitching.html): His two hill images were used to demonstrate image stitching.
74+
* [Kang Li](http://www.cs.cmu.edu/~kangli/code/Image_Stabilizer.html): His shaking CCTV video was used to demonstrate video stabilization.
75+
* [Richard Blais](http://www.richardblais.net/): His book cover and video in [the OpenCV tutorial](http://docs.opencv.org/3.1.0/dc/d16/tutorial_akaze_tracking.html) were used to demonstrate camera pose estimation and augmented reality.
7576

7677
[OpenCV]: http://opencv.org/
7778
[Ceres Solver]: http://ceres-solver.org/
@@ -94,4 +95,4 @@ The authors thank the following contributors and projects.
9495
[sfm_global.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/sfm_global.cpp
9596
[sfm_inc.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/sfm_inc.cpp
9697
[line_fitting_ransac.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/line_fitting_ransac.cpp
97-
[line_fitting_m_est.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/line_fitting_m_est.cpp
98+
[line_fitting_m_est.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/line_fitting_m_est.cpp

msvs/bundle_adjustment_global/bundle_adjustment_global.vcxproj

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,28 @@
1515
<RootNamespace>3dv_tutorial</RootNamespace>
1616
</PropertyGroup>
1717
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
18+
<PropertyGroup>
19+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.2</VisualStudioVersion>
20+
</PropertyGroup>
21+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
22+
<PlatformToolset>v120</PlatformToolset>
23+
</PropertyGroup>
24+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
25+
<PlatformToolset>v140</PlatformToolset>
26+
</PropertyGroup>
27+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '15.0'" Label="Configuration">
28+
<PlatformToolset>v141</PlatformToolset>
29+
</PropertyGroup>
30+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '16.0'" Label="Configuration">
31+
<PlatformToolset>v142</PlatformToolset>
32+
</PropertyGroup>
1833
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
1934
<ConfigurationType>Application</ConfigurationType>
2035
<UseDebugLibraries>true</UseDebugLibraries>
21-
<PlatformToolset>v142</PlatformToolset>
2236
</PropertyGroup>
2337
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
2438
<ConfigurationType>Application</ConfigurationType>
2539
<UseDebugLibraries>false</UseDebugLibraries>
26-
<PlatformToolset>v142</PlatformToolset>
2740
<WholeProgramOptimization>true</WholeProgramOptimization>
2841
</PropertyGroup>
2942
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -87,4 +100,4 @@
87100
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
88101
<ImportGroup Label="ExtensionTargets">
89102
</ImportGroup>
90-
</Project>
103+
</Project>

msvs/bundle_adjustment_inc/bundle_adjustment_inc.vcxproj

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,28 @@
1515
<RootNamespace>3dv_tutorial</RootNamespace>
1616
</PropertyGroup>
1717
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
18+
<PropertyGroup>
19+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.2</VisualStudioVersion>
20+
</PropertyGroup>
21+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
22+
<PlatformToolset>v120</PlatformToolset>
23+
</PropertyGroup>
24+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
25+
<PlatformToolset>v140</PlatformToolset>
26+
</PropertyGroup>
27+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '15.0'" Label="Configuration">
28+
<PlatformToolset>v141</PlatformToolset>
29+
</PropertyGroup>
30+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '16.0'" Label="Configuration">
31+
<PlatformToolset>v142</PlatformToolset>
32+
</PropertyGroup>
1833
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
1934
<ConfigurationType>Application</ConfigurationType>
2035
<UseDebugLibraries>true</UseDebugLibraries>
21-
<PlatformToolset>v142</PlatformToolset>
2236
</PropertyGroup>
2337
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
2438
<ConfigurationType>Application</ConfigurationType>
2539
<UseDebugLibraries>false</UseDebugLibraries>
26-
<PlatformToolset>v142</PlatformToolset>
2740
<WholeProgramOptimization>true</WholeProgramOptimization>
2841
</PropertyGroup>
2942
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -87,4 +100,4 @@
87100
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
88101
<ImportGroup Label="ExtensionTargets">
89102
</ImportGroup>
90-
</Project>
103+
</Project>

msvs/camera_calibration/camera_calibration.vcxproj

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,28 @@
1515
<RootNamespace>3dv_tutorial</RootNamespace>
1616
</PropertyGroup>
1717
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
18+
<PropertyGroup>
19+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.2</VisualStudioVersion>
20+
</PropertyGroup>
21+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
22+
<PlatformToolset>v120</PlatformToolset>
23+
</PropertyGroup>
24+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
25+
<PlatformToolset>v140</PlatformToolset>
26+
</PropertyGroup>
27+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '15.0'" Label="Configuration">
28+
<PlatformToolset>v141</PlatformToolset>
29+
</PropertyGroup>
30+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '16.0'" Label="Configuration">
31+
<PlatformToolset>v142</PlatformToolset>
32+
</PropertyGroup>
1833
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
1934
<ConfigurationType>Application</ConfigurationType>
2035
<UseDebugLibraries>true</UseDebugLibraries>
21-
<PlatformToolset>v142</PlatformToolset>
2236
</PropertyGroup>
2337
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
2438
<ConfigurationType>Application</ConfigurationType>
2539
<UseDebugLibraries>false</UseDebugLibraries>
26-
<PlatformToolset>v142</PlatformToolset>
2740
<WholeProgramOptimization>true</WholeProgramOptimization>
2841
</PropertyGroup>
2942
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

msvs/distortion_correction/distortion_correction.vcxproj

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,28 @@
1515
<RootNamespace>3dv_tutorial</RootNamespace>
1616
</PropertyGroup>
1717
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
18+
<PropertyGroup>
19+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.2</VisualStudioVersion>
20+
</PropertyGroup>
21+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
22+
<PlatformToolset>v120</PlatformToolset>
23+
</PropertyGroup>
24+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
25+
<PlatformToolset>v140</PlatformToolset>
26+
</PropertyGroup>
27+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '15.0'" Label="Configuration">
28+
<PlatformToolset>v141</PlatformToolset>
29+
</PropertyGroup>
30+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '16.0'" Label="Configuration">
31+
<PlatformToolset>v142</PlatformToolset>
32+
</PropertyGroup>
1833
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
1934
<ConfigurationType>Application</ConfigurationType>
2035
<UseDebugLibraries>true</UseDebugLibraries>
21-
<PlatformToolset>v142</PlatformToolset>
2236
</PropertyGroup>
2337
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
2438
<ConfigurationType>Application</ConfigurationType>
2539
<UseDebugLibraries>false</UseDebugLibraries>
26-
<PlatformToolset>v142</PlatformToolset>
2740
<WholeProgramOptimization>true</WholeProgramOptimization>
2841
</PropertyGroup>
2942
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

msvs/image_formation/image_formation.vcxproj

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,28 @@
1515
<RootNamespace>3dv_tutorial</RootNamespace>
1616
</PropertyGroup>
1717
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
18+
<PropertyGroup>
19+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.2</VisualStudioVersion>
20+
</PropertyGroup>
21+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
22+
<PlatformToolset>v120</PlatformToolset>
23+
</PropertyGroup>
24+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
25+
<PlatformToolset>v140</PlatformToolset>
26+
</PropertyGroup>
27+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '15.0'" Label="Configuration">
28+
<PlatformToolset>v141</PlatformToolset>
29+
</PropertyGroup>
30+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '16.0'" Label="Configuration">
31+
<PlatformToolset>v142</PlatformToolset>
32+
</PropertyGroup>
1833
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
1934
<ConfigurationType>Application</ConfigurationType>
2035
<UseDebugLibraries>true</UseDebugLibraries>
21-
<PlatformToolset>v142</PlatformToolset>
2236
</PropertyGroup>
2337
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
2438
<ConfigurationType>Application</ConfigurationType>
2539
<UseDebugLibraries>false</UseDebugLibraries>
26-
<PlatformToolset>v142</PlatformToolset>
2740
<WholeProgramOptimization>true</WholeProgramOptimization>
2841
</PropertyGroup>
2942
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

msvs/image_stitching/image_stitching.vcxproj

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,28 @@
1515
<RootNamespace>3dv_tutorial</RootNamespace>
1616
</PropertyGroup>
1717
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
18+
<PropertyGroup>
19+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.2</VisualStudioVersion>
20+
</PropertyGroup>
21+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
22+
<PlatformToolset>v120</PlatformToolset>
23+
</PropertyGroup>
24+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
25+
<PlatformToolset>v140</PlatformToolset>
26+
</PropertyGroup>
27+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '15.0'" Label="Configuration">
28+
<PlatformToolset>v141</PlatformToolset>
29+
</PropertyGroup>
30+
<PropertyGroup Condition="'$(VisualStudioVersion)' == '16.0'" Label="Configuration">
31+
<PlatformToolset>v142</PlatformToolset>
32+
</PropertyGroup>
1833
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
1934
<ConfigurationType>Application</ConfigurationType>
2035
<UseDebugLibraries>true</UseDebugLibraries>
21-
<PlatformToolset>v142</PlatformToolset>
2236
</PropertyGroup>
2337
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
2438
<ConfigurationType>Application</ConfigurationType>
2539
<UseDebugLibraries>false</UseDebugLibraries>
26-
<PlatformToolset>v142</PlatformToolset>
2740
<WholeProgramOptimization>true</WholeProgramOptimization>
2841
</PropertyGroup>
2942
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

0 commit comments

Comments
 (0)