Reformatted the TOC tables in tutorials to look just as good in PDFs as in HTML. Updated the default.css_t too for this. Added the "Windows Install" tutorial (with videos).

This commit is contained in:
Bernat Gabor 2011-07-04 11:04:56 +00:00
parent 43097c6afb
commit 6be9fbfa6d
34 changed files with 887 additions and 463 deletions

View File

@ -309,6 +309,47 @@ ul.simple {
list-style: none;
}
.enumeratevisibleitems .simple {
.enumeratevisibleitemswithsquare ul {
list-style: square;
}
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
}
.enumeratevisibleitemswithsquare li {
margin-bottom: 0.2em;
margin-left: 0px;
margin-right: 0px;
margin-top: 0.2em;
}
.enumeratevisibleitemswithsquare p {
margin-bottom: 0px;
}
.enumeratevisibleitemswithsquare dl{
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
}
.toctableopencv
{
width: 100% ;
table-layout: fixed;
}
.toctableopencv colgroup col:first-child
{
width: 100pt !important;
max-width: 100pt !important;
min-width: 100pt !important;
}
.toctableopencv colgroup col:nth-child(2)
{
width: 100% !important;
}

View File

@ -5,84 +5,90 @@
Here you will learn the about the basic building blocks of the library. A must read and know for understanding how to manipulate the images on a pixel level.
.. toctree::
:hidden:
../adding_images/adding_images
../basic_linear_transform/basic_linear_transform
../basic_geometric_drawing/basic_geometric_drawing
../random_generator_and_text/random_generator_and_text
.. include:: ../../definitions/tocDefinitions.rst
.. |Author_AnaH| unicode:: Ana U+0020 Huam U+00E1 n
* :ref:`Adding_Images`
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=============== ======================================================
|Beginners_4| *Title:* **Linear Blending**
|Beginners_4| **Title:** :ref:`Adding_Images`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to blend two images!
=============== ======================================================
.. |Beginners_4| image:: images/Adding_Images_Tutorial_Result_0.png
:height: 100pt
:width: 100pt
.. |Beginners_4| image:: images/Adding_Images_Tutorial_Result_0.png
:height: 90pt
:width: 90pt
* :ref:`Basic_Linear_Transform`
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=============== ====================================================
|Bas_Lin_Tran| *Title:* **Changing the contrast and brightness of an image**
|Bas_Lin_Tran| **Title:** :ref:`Basic_Linear_Transform`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to change our image appearance!
=============== ====================================================
.. |Bas_Lin_Tran| image:: images/Basic_Linear_Transform_Tutorial_Result_0.png
:height: 100pt
:width: 100pt
:height: 90pt
:width: 90pt
* :ref:`Drawing_1`
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=============== ======================================================
|Beginners_6| *Title:* **Basic Drawing**
|Beginners_6| **Title:** :ref:`Drawing_1`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to draw simple geometry with OpenCV!
=============== ======================================================
.. |Beginners_6| image:: images/Drawing_1_Tutorial_Result_0.png
:height: 100pt
:width: 100pt
* :ref:`Drawing_2`
=============== ======================================================
|Beginners_7| *Title:* **Cool Drawing**
.. |Beginners_6| image:: images/Drawing_1_Tutorial_Result_0.png
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=============== ======================================================
|Beginners_7| **Title:** * :ref:`Drawing_2`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will draw some *fancy-looking* stuff using OpenCV!
=============== ======================================================
.. |Beginners_7| image:: images/Drawing_2_Tutorial_Result_7.png
:height: 100pt
:width: 100pt
=============== ======================================================
.. |Beginners_7| image:: images/Drawing_2_Tutorial_Result_7.png
:height: 90pt
:width: 90pt
.. toctree::
:hidden:
../adding_images/adding_images
../basic_linear_transform/basic_linear_transform
../basic_geometric_drawing/basic_geometric_drawing
../random_generator_and_text/random_generator_and_text

View File

@ -0,0 +1,5 @@
.. |TOC_Image_Width| replace:: 100pt
.. |TOC_Image_Height| replace:: 100pt
.. |TOC

View File

@ -0,0 +1,6 @@
.. |Author_AnaH| unicode:: Ana U+0020 Huam U+00E1 n
.. |Author_BernatG| unicode:: Bern U+00E1 t U+0020 G U+00E1 bor

View File

@ -5,9 +5,288 @@
In this section you will learn about the image processing (manipulation) functions inside OpenCV.
.. include:: ../../definitions/tocDefinitions.rst
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|ImageProcessing_1| **Title:** :ref:`Smoothing`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Let's take a look at some basic linear filters!
===================== ==============================================
.. |ImageProcessing_1| image:: images/Smoothing_Tutorial_Cover.png
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|ImageProcessing_2| **Title:** :ref:`Morphology_1`
*Compatibility:* > OpenCV 2.0
Author: |Author_AnaH|
Let's *change* the shape of objects!
===================== ==============================================
.. |ImageProcessing_2| image:: images/Morphology_1_Tutorial_Cover.png
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
================= ==================================================
|Morphology_2| **Title:** :ref:`Morphology_2`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Here we investigate different morphology operators
================= ==================================================
.. |Morphology_2| image:: images/Morphology_2_Tutorial_Cover.png
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|Pyramids| **Title:** :ref:`Pyramids`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
What if I need a bigger/smaller image?
===================== ==============================================
.. |Pyramids| image:: images/Pyramids_Tutorial_Cover.png
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|Threshold| **Title:** :ref:`Basic_Threshold`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
After so much processing, it is time to decide which pixels stay!
===================== ==============================================
.. |Threshold| image:: images/Threshold_Tutorial_Cover.png
:height: 90pt
:width: 90pt
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
+
===================== ==============================================
|Filter_2D| **Title:** :ref:`filter_2d`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn to design our own filters by using OpenCV functions
===================== ==============================================
.. |Filter_2D| image:: images/imgtrans/Filter_2D_Tutorial_Cover.jpg
:height: 90pt
:width: 90pt
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
+
===================== ==============================================
|CopyMakeBorder| **Title:** :ref:`copyMakeBorderTutorial`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to pad our images!
===================== ==============================================
.. |CopyMakeBorder| image:: images/imgtrans/CopyMakeBorder_Tutorial_Cover.jpg
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|SobelDerivatives| **Title:** :ref:`sobel_derivatives`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to calculate gradients and use them to detect edges!
===================== ==============================================
.. |SobelDerivatives| image:: images/imgtrans/Sobel_Derivatives_Tutorial_Cover.jpg
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|LaplaceOperator| **Title:** :ref:`laplace_operator`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn about the *Laplace* operator and how to detect edges with it.
===================== ==============================================
.. |LaplaceOperator| image:: images/imgtrans/Laplace_Operator_Tutorial_Cover.jpg
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|CannyDetector| **Title:** :ref:`canny_detector`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn a sophisticated alternative to detect edges.
===================== ==============================================
.. |CannyDetector| image:: images/imgtrans/Canny_Detector_Tutorial_Cover.jpg
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|HoughLines| **Title:** :ref:`hough_lines`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to detect lines
===================== ==============================================
.. |HoughLines| image:: images/imgtrans/Hough_Lines_Tutorial_Cover.jpg
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|HoughCircle| **Title:** :ref:`hough_circle`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to detect circles
===================== ==============================================
.. |HoughCircle| image:: images/imgtrans/Hough_Circle_Tutorial_Cover.jpg
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|Remap| **Title:** :ref:`remap`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to manipulate pixels locations
===================== ==============================================
.. |Remap| image:: images/imgtrans/Remap_Tutorial_Cover.jpg
:height: 90pt
:width: 90pt
+
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
===================== ==============================================
|WarpAffine| **Title:** :ref:`warp_affine`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to rotate, translate and scale our images
===================== ==============================================
.. |WarpAffine| image:: images/imgtrans/Warp_Affine_Tutorial_Cover.jpg
:height: 90pt
:width: 90pt
.. toctree::
:hidden:
../gausian_median_blur_bilateral_filter/gausian_median_blur_bilateral_filter
../erosion_dilatation/erosion_dilatation
../opening_closing_hats/opening_closing_hats
@ -22,257 +301,3 @@ In this section you will learn about the image processing (manipulation) functio
../imgtrans/hough_circle/hough_circle
../imgtrans/remap/remap
../imgtrans/warp_affine/warp_affine
.. |Author_AnaH| unicode:: Ana U+0020 Huam U+00E1 n
* :ref:`Smoothing`
===================== ==============================================
|ImageProcessing_1| *Title:* **Smoothing Images**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Let's take a look at some basic linear filters!
===================== ==============================================
.. |ImageProcessing_1| image:: images/Smoothing_Tutorial_Cover.png
:height: 100pt
:width: 100pt
* :ref:`Morphology_1`
===================== ==============================================
|ImageProcessing_2| *Title:* **Erosion and Dilation**
*Compatibility:* > OpenCV 2.0
Author: |Author_AnaH|
Let's *change* the shape of objects!
===================== ==============================================
.. |ImageProcessing_2| image:: images/Morphology_1_Tutorial_Cover.png
:height: 100pt
:width: 100pt
* :ref:`Morphology_2`
================= ==================================================
|Morphology_2| *Title:* **More advanced Morphology Transformations**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Here we investigate different morphology operators
================= ==================================================
.. |Morphology_2| image:: images/Morphology_2_Tutorial_Cover.png
:height: 100pt
:width: 100pt
* :ref:`Pyramids`
===================== ==============================================
|Pyramids| *Title:* **Image Pyramids**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
What if I need a bigger/smaller image?
===================== ==============================================
.. |Pyramids| image:: images/Pyramids_Tutorial_Cover.png
:height: 100pt
:width: 100pt
* :ref:`Basic_Threshold`
===================== ==============================================
|Threshold| *Title:* **Basic Thresholding Operations**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
After so much processing, it is time to decide which pixels stay!
===================== ==============================================
.. |Threshold| image:: images/Threshold_Tutorial_Cover.png
:height: 100pt
:width: 100pt
.. ************************
.. ImgTrans
.. ************************
* :ref:`filter_2d`
===================== ==============================================
|Filter_2D| *Title:* **Making your own linear filters**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn to design our own filters by using OpenCV functions
===================== ==============================================
.. |Filter_2D| image:: images/imgtrans/Filter_2D_Tutorial_Cover.jpg
:height: 100pt
:width: 100pt
* :ref:`copyMakeBorderTutorial`
===================== ==============================================
|CopyMakeBorder| *Title:* **Adding borders to your images**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to pad our images!
===================== ==============================================
.. |CopyMakeBorder| image:: images/imgtrans/CopyMakeBorder_Tutorial_Cover.jpg
:height: 100pt
:width: 100pt
* :ref:`sobel_derivatives`
===================== ==============================================
|SobelDerivatives| *Title:* **Sobel Derivatives**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to calculate gradients and use them to detect edges!
===================== ==============================================
.. |SobelDerivatives| image:: images/imgtrans/Sobel_Derivatives_Tutorial_Cover.jpg
:height: 100pt
:width: 100pt
* :ref:`laplace_operator`
===================== ==============================================
|LaplaceOperator| *Title:* **Laplace Operator**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn about the *Laplace* operator and how to detect edges with it.
===================== ==============================================
.. |LaplaceOperator| image:: images/imgtrans/Laplace_Operator_Tutorial_Cover.jpg
:height: 100pt
:width: 100pt
* :ref:`canny_detector`
===================== ==============================================
|CannyDetector| *Title:* **Canny Edge Detector**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn a sophisticated alternative to detect edges.
===================== ==============================================
.. |CannyDetector| image:: images/imgtrans/Canny_Detector_Tutorial_Cover.jpg
:height: 100pt
:width: 100pt
* :ref:`hough_lines`
===================== ==============================================
|HoughLines| *Title:* **Hough Line Transform**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to detect lines
===================== ==============================================
.. |HoughLines| image:: images/imgtrans/Hough_Lines_Tutorial_Cover.jpg
:height: 100pt
:width: 100pt
* :ref:`hough_circle`
===================== ==============================================
|HoughCircle| *Title:* **Hough Circle Transform**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to detect circles
===================== ==============================================
.. |HoughCircle| image:: images/imgtrans/Hough_Circle_Tutorial_Cover.jpg
:height: 100pt
:width: 100pt
* :ref:`remap`
===================== ==============================================
|Remap| *Title:* **Remapping**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to manipulate pixels locations
===================== ==============================================
.. |Remap| image:: images/imgtrans/Remap_Tutorial_Cover.jpg
:height: 100pt
:width: 100pt
* :ref:`warp_affine`
===================== ==============================================
|WarpAffine| *Title:* **Affine Transforms**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
Where we learn how to rotate, translate and scale our images
===================== ==============================================
.. |WarpAffine| image:: images/imgtrans/Warp_Affine_Tutorial_Cover.jpg
:height: 100pt
:width: 100pt

View File

@ -177,6 +177,7 @@ Making a project
My output (in case you want to check) was:
.. code-block:: bash
-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
Now you are done. Click **OK**

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -5,127 +5,148 @@ Introduction to OpenCV
Here you can read tutorials about how to set up your computer to work with the OpenCV library. Additionaly you can find a few very basic sample source code that will let introduce you to the world of the OpenCV.
.. include:: ../../definitions/tocDefinitions.rst
* **Linux**
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== ======================================================
|Install_1| **Title:** :ref:`Linux-Installation`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to setup OpenCV in your computer!
=========== ======================================================
.. |Install_1| image:: images/ubuntu_logo.jpeg
:height: 90pt
:width: 90pt
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== ======================================================
|Usage_1| **Title:** :ref:`Linux_GCC_Usage`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to compile your first project using gcc and CMake
=========== ======================================================
.. |Usage_1| image:: images/gccegg-65.png
:height: 90pt
:width: 90pt
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== ======================================================
|Usage_2| **Title:** :ref:`Linux_Eclipse_Usage`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to compile your first project using the Eclipse environment
=========== ======================================================
.. |Usage_2| image:: images/eclipse_cpp_logo.jpeg
:height: 90pt
:width: 90pt
* **Windows**
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== ======================================================
|WinInstal| **Title:** :ref:`Windows_Installation`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_BernatG|
You will learn how to setup OpenCV in your Windows Operating System!
=========== ======================================================
.. |WinInstal| image:: images/windows_logo.jpg
:height: 90pt
:width: 90pt
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== ======================================================
|WinVSHowT| **Title:** :ref:`Windows_Visual_Studio_How_To`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_BernatG|
You will learn what steps you need to perform in order to use the OpenCV library inside a new Microsoft Visual Studio project.
=========== ======================================================
.. |WinVSHowT| image:: images/visual-studio-2010-logo.jpg
:height: 90pt
:width: 90pt
* **From where to start?**
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
============= ======================================================
|Beginners_1| **Title:** :ref:`Display_Image`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to display an image using OpenCV
============= ======================================================
.. |Beginners_1| image:: images/Display_Image_Tutorial_Result.png
:height: 90pt
:width: 90pt
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=============== ======================================================
|Beginners_2| **Title:** :ref:`Load_Save_Image`
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to save an Image in OpenCV...plus a small conversion to grayscale
=============== ======================================================
.. |Beginners_2| image:: images/Load_Save_Image_Result_1.png
:height: 90pt
:width: 90pt
.. We use a custom table of content format and as the table of content only imforms Sphinx about the hierarchy of the files, no need to show it.
.. toctree::
:hidden:
../linux_install/linux_install
../linux_gcc_cmake/linux_gcc_cmake
../linux_eclipse/linux_eclipse
../windows_install/windows_install
../windows_visual_studio_Opencv/windows_visual_studio_Opencv
../display_image/display_image
../load_save_image/load_save_image
.. |Author_AnaH| unicode:: Ana U+0020 Huam U+00E1 n
.. |Author_BernatG| unicode:: Bern U+00E1 t U+0020 G U+00E1 bor
* **Linux**
* :ref:`Linux-Installation`
=========== ======================================================
|Install_1| *Title:* **Installation steps in Linux**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to setup OpenCV in your computer!
=========== ======================================================
.. |Install_1| image:: images/ubuntu_logo.jpeg
:height: 100pt
:width: 100pt
* :ref:`Linux_GCC_Usage`
=========== ======================================================
|Usage_1| *Title:* **Using OpenCV with gcc (and CMake)**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to compile your first project using gcc and CMake
=========== ======================================================
.. |Usage_1| image:: images/gccegg-65.png
:height: 100pt
:width: 100pt
* :ref:`Linux_Eclipse_Usage`
=========== ======================================================
|Usage_2| *Title:* **Using OpenCV with Eclipse (CDT plugin)**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to compile your first project using the Eclipse environment
=========== ======================================================
.. |Usage_2| image:: images/eclipse_cpp_logo.jpeg
:height: 100pt
:width: 100pt
* **Windows**
* :ref:`Windows_Installation`
=========== ======================================================
|Install_2| *Title:* **Installation steps in Windows**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_BernatG|
You will learn how to setup OpenCV in your Windows Operating System!
=========== ======================================================
.. |Install_2| image:: images/windows_logo.jpg
:height: 100pt
:width: 100pt
* **From where to start?**
* :ref:`Display_Image`
=============== ======================================================
|Beginners_1| *Title:* **Display an Image**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to display an image using OpenCV
=============== ======================================================
.. |Beginners_1| image:: images/Display_Image_Tutorial_Result.png
:height: 100pt
:width: 100pt
* :ref:`Load_Save_Image`
=============== ======================================================
|Beginners_2| *Title:* **Load and save an Image**
*Compatibility:* > OpenCV 2.0
*Author:* |Author_AnaH|
We will learn how to save an Image in OpenCV...plus a small conversion to grayscale
=============== ======================================================
.. |Beginners_2| image:: images/Load_Save_Image_Result_1.png
:height: 100pt
:width: 100pt

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -3,16 +3,13 @@
Installation in Windows
***********************
The description here was tested by the author using the Windows 7 SP1 **o**\ perating **s**\ ystem (OS). Nevertheless, it should also work on any other Windows OS too. If you encounter errors after following the steps described here feel free to contact us via our :opencv_group:`user group <>` and we will try to fix your problem.
.. include:: <isonum.txt>
.. note:: To use the OpenCV library you have two options:
.. container:: enumeratevisibleitems
- download and install our pre-built libraries
- make your own ones from the source files.
The description here was tested by the author using the Windows 7 SP1 **o**\ perating **s**\ ystem (*OS*). Nevertheless, it should also work on any other Windows OS too. If you encounter errors after following the steps described here feel free to contact us via our :opencv_group:`user group <>` and we will try to fix your problem.
While the first one is easier to complete, it only works if you are coding inside the latest Microsoft Visual Studio integrated development environments and doesn't takes advantage of the most novel technologies we integrate into our library.
.. note:: To use the OpenCV library you have two options: :ref:`Windows_Install_Prebuild` or :ref:`CppTutWindowsMakeOwn`. While the first one is easier to complete, it only works if you are coding inside the latest Microsoft Visual Studio **i**\ ntegrated **d**\ evelopment **e**\ nvironments (*IDE*) and doesn't takes advantage of the most novel technologies we integrate into our library.
.. _Windows_Install_Prebuild:
Installation by using the pre-built libraries
=============================================
@ -23,7 +20,7 @@ Installation by using the pre-built libraries
#. Choose a build you want to use and download it. The naming conventions used will show what kind of support they offer. For example:
.. container:: enumeratevisibleitems
.. container:: enumeratevisibleitemswithsquare
* *vs2010* means the Visual Studio
* *win32* means that it is for 32 bit applications in the OS
@ -33,31 +30,314 @@ Installation by using the pre-built libraries
#. Make sure you have admin rights. Start the setup and follow the wizard. Agree to the \" License Agreement \" .
#. Adding the OpenCV library to the system path is a good decision unless you want to play around with multiple flavors of the same OpenCV version. You will use the OpenCV library in form of *\"Dynamic-link library\"* (also known as **DLL**). Inside these are stored all the algorithms and information the OpenCV library contains. The operating system will load them only on demand during runtime. However, to do this he needs to know where they are. The systems **PATH** contains a list of folders where DLLs can be found. Add the OpenCV library path to this and the OS will know of the existence of the OpenCV binaries. Otherwise you will need to copy the used DLLs right beside the applications executable file (*exe*) for the OS to find it.
#. Adding the OpenCV library to the system path is a good decision unless you want to play around with multiple flavors of the same OpenCV version. You will use the OpenCV library in form of *\"Dynamic-link libraries\"* (also known as **DLL**). Inside these are stored all the algorithms and information the OpenCV library contains. The operating system will load them only on demand, during runtime. However, to do this he needs to know where they are. The systems **PATH** contains a list of folders where DLLs can be found. Add the OpenCV library path to this and the OS will know where to look if he ever needs the OpenCV binaries. Otherwise, you will need to copy the used DLLs right beside the applications executable file (*exe*) for the OS to find it.
.. note::
A good way to check your systems path folders is by using the \"*Path Editor*\" application. You can download it `from here <http://www.redfernplace.com/software-projects/patheditor/>`_. Use this if you are not sure the systems path was updated with the OpenCV entry. You can also add manually new folders to the system path by using this application.
A good and safe way to check your systems **PATH** folders is by using the \"*Path Editor*\" application. You can download it `from here <http://www.redfernplace.com/software-projects/patheditor/>`_. Use this if you are not sure the systems path was updated with the OpenCV entry. You can also add manually new folders to the systems **PATH** by using this application.
#. Most of the time it is a good idea to install the source files as this will allow for you to debug into the OpenCV library, if it is necessary. Therefore, just follow the default settings of the wizard and finish the installation.
#. In the end you can check the installation at the chosen path. If you added the OpenCV Path to the system PATH inside the *Path Editor* you should see an entry with the *bin* folder of the OpenCV directory.
.. image:: images/OpenCV_Install_Directory.png
.. image:: images/OpenCV_Install_Directory.jpg
:alt: An example of how the installation directory should look in case of success.
:align: center
Szia.
.. _CppTutWindowsMakeOwn:
Installation by making your own libraries
=========================================
Installation by making your own libraries from the source files
===============================================================
If you are building your own libraries you can either take the source files from our latest:
You may find the content of this tutorial also inside the following videos: `Part 1 <https://www.youtube.com/watch?v=NnovZ1cTlMs>`_ and `Part 2 <https://www.youtube.com/watch?v=qGNWMcfWwPU>`_, hosted on YouTube.
.. container:: enumeratevisibleitems
.. raw:: html
+ stable/tested build - https://code.ros.org/svn/opencv/branches/
<div align="center">
<iframe title="Install OpenCV by using its source files - Part 1" width="560" height="349" src="http://www.youtube.com/embed/NnovZ1cTlMs?rel=0&loop=1" frameborder="0" allowfullscreen align="middle"></iframe>
<iframe title="Install OpenCV by using its source files - Part 2" width="560" height="349" src="http://www.youtube.com/embed/qGNWMcfWwPU?rel=0&loop=1" frameborder="0" allowfullscreen align="middle"></iframe>
</div>
If you are building your own libraries you can take either the source files from our latest:
.. container:: enumeratevisibleitemswithsquare
+ stable and tested build - https://code.ros.org/svn/opencv/branches/
+ development build - https://code.ros.org/svn/opencv/trunk/
While the later one may contain a couple of new and experimental algorithms, performance increases and interface improvements be aware that it may also contain many-many bugs. Using the first one is recommended in most of the cases, unless you are extending the OpenCV library itself or really need to most up to date version of it.
While the later one may contain a couple of new and experimental algorithms, performance increases and interface improvements, be aware, that it may also contain many-many bugs. Using the first one is recommended in most of the cases. That is unless you are extending the OpenCV library itself or really need to most up to date version of it.
Building the OpenCV library from scratch requires a couple of tools installed beforehand:
.. container:: enumeratevisibleitemswithsquare
+ An **I**\ ntegrated **D**\ eveloper **E**\ nviroment (*IDE*) preferably, or just a C\C++ compiler that will actually make the binary files. Here I will use the `Microsoft Visual Studio <https://www.microsoft.com/visualstudio/en-us>`_. Nevertheless, you can use any other *IDE* that has a valid C\\C++ compiler.
+ Then |CMake|_ is a neat tool that will make the project files (for your choosen *IDE*) from the OpenCV source files. It will also allow an easy configuration of the OpenCV build files, in order to make binary files that fits exactly to your needs.
.. |CMake| replace:: CMake
.. _CMake: http://www.cmake.org/cmake/resources/software.html
+ A **S**\ ubversion **C**\ ontrol **S**\ ystem (*SVN*) to acquire the OpenCV source files. A good tool for this is |TortoiseSVN|_. Alternatively, you can just download an archived version of the source files from the `Sourceforge OpenCV page <http://sourceforge.net/projects/opencvlibrary/files/opencv-win/>`_.
.. |TortoiseSVN| replace:: TortoiseSVN
.. _TortoiseSVN: http://tortoisesvn.net/downloads.html
OpenCV may come in multiple flavors. There is a "core" section that will work on its own. Nevertheless, they are a couple of tools, libraries made by other organizations (so called 3rd parties) that offer services of which the OpenCV may take advantage. These will improve in many ways its capabilities. In order to use any of them, you need to download and install them on your system.
.. container:: enumeratevisibleitemswithsquare
+ The |Python_Libraries|_ are required to build the *Python interface* of OpenCV. For now use the version :file:`2.7.{x}`. This is also a must have if you want to build the *OpenCV documentation*.
.. |Python_Libraries| replace:: Python libraries
.. _Python_Libraries: http://www.python.org/getit/
+ |Numpy|_ is a scientific computing package for Python. Required for the *Python interface*.
.. |Numpy| replace:: Numpy
.. _Numpy: http://numpy.scipy.org/
+ |IntelTBB|_ is used inside OpenCV for parallel code snippets. Using this will make sure that the OpenCV library will take advantage of all the cores you have in your systems CPU.
.. |IntelTBB| replace:: Intel |copy| Threading Building Blocks (*TBB*)
.. _IntelTBB: http://threadingbuildingblocks.org/file.php?fid=77
+ |IntelIIP|_ may be used to improve the performance of color conversion, Haar training and DFT functions of the OpenCV library. Watch out as this isn't a *free* service.
.. |IntelIIP| replace:: Intel |copy| Integrated Performance Primitives (*IPP*)
.. _IntelIIP: http://software.intel.com/en-us/articles/intel-ipp/
+ OpenCV offers a somewhat fancier and more useful graphical user interface, than the default one by using the |qtframework|_. For a quick overview of what this has to offer look into the documentations *highgui* module, under the *Qt New Functions* section. Version 4.6 or later of the framework is required.
.. |qtframework| replace:: Qt framework
.. _qtframework: http://qt.nokia.com/downloads
+ |Eigen|_ is a C++ template library for linear algebra.
.. |Eigen| replace:: Eigen
.. _Eigen: http://eigen.tuxfamily.org/index.php?title=Main_Page#Download
+ The latest |CUDA_Toolkit|_ will allow you to use the power lying inside your GPU. This will drastically improve performance for some of the algorithms, like the HOG descriptor. Getting to work more and more of our algorithms on the GPUs is a constant effort of the OpenCV team.
.. |CUDA_Toolkit| replace:: CUDA Toolkit
.. _CUDA_Toolkit: http://developer.nvidia.com/cuda-downloads
+ |OpenEXR|_ source files are required for the library to work with this high dynamic range (HDR) image file format.
.. |OpenEXR| replace:: OpenEXR
.. _OpenEXR: http://www.openexr.com/downloads.html
+ The |OpenNI_Framework|_ contains a set of open source APIs that provide support for natural interaction with devices via methods such as voice command recognition, hand gestures and body motion tracking.
.. |OpenNI_Framework| replace:: OpenNI Framework
.. _OpenNI_Framework: http://www.openni.org/
+ |Miktex|_ is the best `TEX <https://secure.wikimedia.org/wikipedia/en/wiki/TeX>`_ implementation on the Windows OS. It is required to build the *OpenCV documentation*.
.. |Miktex| replace:: Miktex
.. _Miktex: http://miktex.org/2.9/setup
+ |Sphinx|_ is a python documentation generator and is the tool that will actually create the *OpenCV documentation*. This on its own requires a couple of tools installed, I will cover this in depth at the :ref:`How to Install Sphinx <HereInstallSphinx>` section.
.. |Sphinx| replace:: Sphinx
.. _Sphinx: http://sphinx.pocoo.org/
Now I will describe the steps to follow for a full build (using all the above frameworks, tools and libraries). If you do not need the support for some of these you can just freely skip those parts.
.. _WindowsBuildLibrary:
Building the library
^^^^^^^^^^^^^^^^^^^^
1. Make sure you have a working IDE with a valid compiler. In case of the Microsoft Visual Studio just install it and make sure it starts up.
#. Install |CMake|_. Simply follow the wizard, no need to add it to the path. The default install options are great. No need to change them.
#. Install |TortoiseSVN|_. Choose the 32 or 64 bit version according to the type of OS you work in. Again follow the wizard, default options are good. Restart of your system is required.
#. Choose a directory in your file system where you will download the OpenCV libraries. I recommend creating a new one that has short path and no special charachters in it, for example :file:`D:/OpenCV`. During this tutorial I'll suppose you've done so. If you use a different directory just change this front part of the path in my future examples. Then, :menuselection:`Right Click --> SVN Checkout...` in the directory.
.. image:: images/TortoiseSVNCheckout.jpg
:alt: The TortoiseSVN Checkout Menu
:align: center
A window will appear where you can select from what repository you want to download source files (1) and to which directory (2):
.. image:: images/TortoiseSVNCheckoutWindow.jpg
:alt: The TortoiseSVN Checkout Window
:align: center
Add here either ones of the versions described above. Then push the OK button and be patient as the repository currently is over 330MB to download. It will take some time until it is finished depending on your Internet connection.
.. image:: images/SVNCheckOutProgress.jpg
:alt: The TortoiseSVN Checkout Progress
:align: center
When you are done you should have a *opencv* and an *opencv_extra* directory as seen at (3).
#. In this section I will cover installing the 3rd party libraries.
a) Download the |Python_Libraries|_ and install it with the default options. You will need a couple other python extensions. Luckily installing all these may be automated by a nice tool called `Setuptools <http://pypi.python.org/pypi/setuptools#downloads>`_. Download and install again.
#) .. _HereInstallSphinx:
Installing Sphinx is easy once you have installed *Setuptools*. This contains a little application that will automatically connect to the python databases and download the latest version of many python scripts. Start up a command window (enter *cmd* into the windows start menu and press enter) and use the *CD* command to navigate to your Python folders Script sub-folder. Here just pass to the *easy_install.exe* as argument the name of the program you want to install. Add the *sphinx* argument.
.. image:: images/cmsdstartwindows.jpg
:alt: The Windows Command Startup
:align: center
.. image:: images/Sphinx_Install.jpg
:alt: How to start the command window
:align: center
.. note::
The *CD* navigation command works only inside a drive. For example if you are somewhere in the *C:* drive you cannot use it this to go to another drive (like for example *D:*). To do so you first need to change drives letters. For this simply enter the command *D:*. Then you can use the *CD* to navigate to specific folder inside the drive. Bonus tip: you can clear the screen by using the *CLS* command.
This will also install its prerequisites `Jinja2 <http://jinja.pocoo.org/docs/>`_ and `Pygments <http://pygments.org/>`_.
#) The easiest way to install |Numpy|_ is to just download its binaries from the `sourceforga page <http://sourceforge.net/projects/numpy/files/NumPy/>`_. Make sure your download and install exactly the binary for your python version (so for version :file:`2.7`).
#) Download the |Miktex|_ and install it. Again just follow the wizard. At the fourth step make sure you select for the *"Install missing packages on-the-fly"* the *Yes* option, as you can see on the image below. Again this will take quite some time so be patient.
.. image:: images/MiktexInstall.jpg
:alt: The Miktex Install Screen
:align: center
#) For the |IntelTBB|_ download the source files and extract it inside a directory on your system. For example let there be :file:`D:/OpenCV/dep`. For installing the |IntelIIP|_ the story is the same. For exctracting the archives I recommend using the `7-Zip <http://www.7-zip.org/>`_ application.
.. image:: images/IntelTBB.jpg
:alt: The Miktex Install Screen
:align: center
#) In case of the |Eigen|_ library it is again a case of download and extract to the :file:`D:/OpenCV/dep` directory.
#) Same as above with |OpenEXR|_.
#) For the |OpenNI_Framework|_ you need to install both the `development build <http://www.openni.org/downloadfiles/opennimodules/openni-binaries/21-stable>`_ and the `PrimeSensor Module <http://www.openni.org/downloadfiles/opennimodules/openni-compliant-hardware-binaries/32-stable>`_.
#) For the CUDA you need again two modules: the latest |CUDA_Toolkit|_ and the *CUDA Tools SDK*. Download and install both of them with a *complete* option by using the 32 or 64 bit setups according to your OS.
#) In case of the |qtframework|_ you need to build yourself the binary files (unless you use the Microsoft Visual Studio 2008 with 32 bit compiler). To do this go to the `Qt Downloads <http://qt.nokia.com/downloads>`_ page. Download the source files (not the installers!!!):
.. image:: images/qtDownloadThisPackage.jpg
:alt: Download this Qt Package
:align: center
Extract it into a nice and short named directory like :file:`D:/OpenCV/dep/qt/` .
Then you need to build it. Start up a *Visual* *Studio* *Command* *Prompt* (*2010*) by using the start menu search (or navigate through the start menu :menuselection:`All Programs --> Microsoft Visual Studio 2010 --> Visual Studio Tools --> Visual Studio Command Prompt (2010)`).
.. image:: images/visualstudiocommandprompt.jpg
:alt: The Visual Studio command prompt
:align: center
Now navigate to the extracted folder and enter inside it by using this console window. You should have a folder containing files like *Install*, *Make* and so on. Use the *dir* command to list files inside your current directory. Once arrived at this directory enter the following command:
.. code-block:: bash
configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg
Completing this will take around 10-20 minutes. Then enter the next command that will take a lot longer (can easily take even more than a full hour):
.. code-block:: bash
nmake
After this set the Qt enviroment variables using the following command on Windows 7:
.. code-block:: bash
setx QTDIR D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3
Also, add the built binary files path to the system path by using the `Path Editor <http://www.redfernplace.com/software-projects/patheditor/>`_. In our case this is :file:`D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3/bin`.
.. note::
If you plan on doing Qt application development you can also install at this point the *Qt Visual Studio Add-in*. After this you can make and build Qt applications without using the *Qt Creator*. Everything is nicely integrated into Visual Studio.
#. Now start the *CMake (cmake-gui)*. You may again enter it in the start menu search or get it from the :menuselection:`All Programs --> CMake 2.8 --> CMake (cmake-gui)`. First, select the directory for the source files of the OpenCV library (1). Then, specify a directory where you will build the binary files for OpenCV (2).
.. image:: images/CMakeSelectBin.jpg
:alt: Select the directories
:align: center
Press the Configure button to specify the compiler (and *IDE*) you want to use. Note that in case you can choose between different compilers for making either 64 bit or 32 bit libraries. Select the one you use in your application development.
.. image:: images/CMake_Configure_Windows.jpg
:alt: How CMake should look at build time.
:align: center
CMake will start out and based on your system variables will try to automatically locate as many packages as possible. You can modify the packages to use for the build in the :menuselection:`WITH --> WITH_X` menu points (where *X* is the package abbreviation). Here are a list of current packages you can turn on or off:
.. image:: images/CMakeBuildWithWindowsGUI.jpg
:alt: The packages OpenCV may use
:align: center
Select all the packages you want to use and press again the *Configure* button. For an easier overview of the build options make sure the *Grouped* option under the binary directory selection is turned on. For some of the packages CMake may not find all of the required files or directories. In case of these CMake will throw an error in its output window (located at the bottom of the GUI) and set its field values, to not found constants. For example:
.. image:: images/CMakePackageNotFoundWindows.jpg
:alt: Constant for not found packages
:align: center
.. image:: images/CMakeOutputPackageNotFound.jpg
:alt: Error (warning) thrown in output window of the CMake GUI
:align: center
For these you need to manually set the queried directories or files path. After this press again the *Configure* button to see if the value entered by you was accepted or not. Do this until all entries are good and you cannot see errors in the field/value or the output part of the GUI.
Now I want to emphasize an option that you will definitely love: :menuselection:`ENABLE --> ENABLE_SOLUTION_FOLDERS`. OpenCV will create many-many projects and turning this option will make sure that they are categorized inside directories in the *Solution Explorer*. It is a must have feature, if you ask me.
.. image:: images/CMakeBuildOptionsOpenCV.jpg
:alt: Set the Solution Folders and the parts you want to build
:align: center
Furthermore, you need to select what part of OpenCV you want to build.
.. container:: enumeratevisibleitemswithsquare
+ *BUILD_DOCS* -> Build the documentation of OpenCV (there will be a separate project for building the HTML and the PDF files).
+ *BUILD_EXAMPLES* -> OpenCV comes with many example applications from which you may learn most of the libraries capabilities. This will also come handy to easily try out if OpenCV is fully functional on your computer.
+ *BUILD_JAVA_SUPPORT* -> This is a fresh addition to OpenCV, which slowly start to support the java language.
+ *BUILD_NEW_PYTHON_SUPPORT* -> Self-explanatory. Create the binaries to use OpenCV from the Python language.
+ *BUILD_PACKAGE* -> Build a project that will build an OpenCV installer. With this you can easily install your OpenCV flavor on other systems.
+ *BUILD_SHARED_LIBS* -> With this you can control to build DLL files (when turned on) or static library files (\*.lib) otherwise.
+ *BUILD_TESTS* -> Each module of OpenCV has a test project assigned to it. Building these test projects is also a good way to try out, that the modules work just as expected on your system too.
Press again the *Configure* button and ensure no errors are reported. If this is the case you can tell CMake to create the project files by pushing the *Generate* button. Go to the build directory and open the created **OpenCV** solution.
Depending on just how much of the above options you have selected the solution may contain quite a lot of projects so be tolerant on the IDE at the startup.
Now you need to build both the *Release* and the *Debug* binaries. Use the drop-down menu on your IDE to change to another of these after building for one of them.
.. image:: images/ChangeBuildVisualStudio.jpg
:alt: Look here for changing the Build Type
:align: center
In the end you can observe the built binary files inside the bin directory:
.. image:: images/OpenCVBuildResultWindows.jpg
:alt: The Result of the build.
:align: center
For the documentation you need to explicitly issue the build commands on the *doc* project for the PDF files and on the *doc_html* for the HTML ones. Each of these will call *Sphinx* to do all the hard work. You can find the generated documentation inside the :file:`Build/Doc/_html` for the HTML pages and within the :file:`Build/Doc` the PDF manuals.
.. image:: images/WindowsBuildDoc.jpg
:alt: The Documentation Projects
:align: center
To collect the header and the binary files, that you will use during your own projects, into a separate directory (simillary to how the pre-built binaries ship) you need to explicitely build the *Install* project.
.. image:: images/WindowsBuildInstall.jpg
:alt: The Install Project
:align: center
This will create an *install* directory inside the *Build* one collecting all the built binaries into a single place. Use this only after you built both the *Release* and *Debug* versions.
.. note::
To create an installer you need to install `NSIS <http://nsis.sourceforge.net/Download>`_. Then just build the *Package* project to build the installer into the :file:`Build/_CPack_Packages/{win32}/NSIS` folder. You can then use this to distribute OpenCV with your build settings on other systems.
.. image:: images/WindowsOpenCVInstaller.jpg
:alt: The Installer directory
:align: center
To test your build just go into the :file:`Build/bin/Debug` or :file:`Build/bin/Release` directory and start a couple of applications like the *contours.exe*. If they run, you are done. Otherwise, something definitely went awfully wrong. In this case you should contact us via our :opencv_group:`user group <>`.
If everything is okay the *contours.exe* output should resemble the following image (if built with Qt support):
.. image:: images\WindowsQtContoursOutput.jpg
:alt: A good output result
:align: center
.. note::
If you use the GPU module (CUDA libraries) make sure you also upgrade to the latest drivers of your GPU. Error messages containing invalid entries in (or cannot find) the nvcuda.dll are caused mostly by old video card drivers. For testing the GPU (if built) run the *performance_gpu.exe* sample application.
Now you can continue reading the tutorials with the :ref:`Windows_Visual_Studio_How_To` section. There you will find out how to use the OpenCV library in your own projects with the help of the Microsoft Visual Studio IDE.

View File

@ -0,0 +1,6 @@
.. _Windows_Visual_Studio_How_To:
How to build applications with OpenCV inside the *Microsoft Visual Studio*
**************************************************************************
One.

View File

@ -1,28 +1,16 @@
Tutorials
###########
###############
OpenCV Tutorials
###############
The following links describe a set of basic OpenCV tutorials. All the source code mentioned here is provide as part of the OpenCV regular releases, so check before you start copy & pasting the code. The list of tutorials below is automatically generated from reST files located in our SVN repository.
As always, we would be happy to hear your comments and receive your contributions on any tutorial.
.. toctree::
:maxdepth: 2
:hidden:
introduction/table_of_content_introduction/table_of_content_introduction
core/table_of_content_core/table_of_content_core
imgproc/table_of_content_imgproc/table_of_content_imgproc
highgui/table_of_content_highgui/table_of_content_highgui
calib3d/table_of_content_calib3d/table_of_content_calib3d
features2d/table_of_content_features2d/table_of_content_features2d
video/table_of_content_video/table_of_content_video
objdetect/table_of_content_objdetect/table_of_content_objdetect
ml/table_of_content_ml/table_of_content_ml
gpu/table_of_content_gpu/table_of_content_gpu
general/table_of_content_general/table_of_content_general
* :ref:`Table-Of-Content-Introduction`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|Introduct| You will learn how to setup OpenCV on your computer!
@ -35,6 +23,9 @@ As always, we would be happy to hear your comments and receive your contribution
* :ref:`Table-Of-Content-Core`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|Core| Here you will learn the about the basic building blocks of the library. A must read and know for understanding how to manipulate the images on a pixel level.
@ -47,6 +38,9 @@ As always, we would be happy to hear your comments and receive your contribution
* :ref:`Table-Of-Content-ImgProc`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|ImgProc| In this section you will learn about the image processing (manipulation) functions inside OpenCV.
@ -59,6 +53,9 @@ As always, we would be happy to hear your comments and receive your contribution
* :ref:`Table-Of-Content-HighGui`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|HighGui| This section contains valuable tutorials about how to read/save your image/video files and how to use the built-in graphical user interface of the library.
@ -71,6 +68,9 @@ As always, we would be happy to hear your comments and receive your contribution
* :ref:`Table-Of-Content-Calib3D`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|Calib3D| Although we got most of our images in a 2D format they do come from a 3D world. Here you will learn how to find out from the 2D images information about the 3D world.
@ -83,6 +83,9 @@ As always, we would be happy to hear your comments and receive your contribution
* :ref:`Table-Of-Content-Feature2D`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|Featur2D| Learn about how to use the feature points detectors, descriptors and matching framework found inside OpenCV.
@ -94,7 +97,10 @@ As always, we would be happy to hear your comments and receive your contribution
:alt: feature2D Icon
* :ref:`Table-Of-Content-Video`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|Video| Look here in order to find use on your video stream algoritms like: motion extraction, feature tracking and foreground extractions.
@ -107,6 +113,9 @@ As always, we would be happy to hear your comments and receive your contribution
* :ref:`Table-Of-Content-ObjDetect`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|ObjDetect| Ever wondered how your digital camera detects peoples and faces? Look here to find out!
@ -118,7 +127,10 @@ As always, we would be happy to hear your comments and receive your contribution
:alt: objdetect Icon
* :ref:`Table-Of-Content-Ml`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|ml| Use the powerfull machine learning classes for statistical classification, regression and clustering of data.
@ -131,6 +143,9 @@ As always, we would be happy to hear your comments and receive your contribution
* :ref:`Table-Of-Content-GPU`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|GPU| Squeeze out every little computation power from your system by using the power of your video card to run the OpenCV algorithms.
@ -143,6 +158,9 @@ As always, we would be happy to hear your comments and receive your contribution
* :ref:`Table-Of-Content-General`
.. tabularcolumns:: m{100pt} m{300pt}
.. cssclass:: toctableopencv
=========== =======================================================
|General| These tutorials are the bottom of the iceberg as they link together multiple of the modules presented above in order to solve complex problems.
@ -153,3 +171,18 @@ As always, we would be happy to hear your comments and receive your contribution
:width: 80pt
:alt: General Icon
.. toctree::
:maxdepth: 2
:hidden:
introduction/table_of_content_introduction/table_of_content_introduction
core/table_of_content_core/table_of_content_core
imgproc/table_of_content_imgproc/table_of_content_imgproc
highgui/table_of_content_highgui/table_of_content_highgui
calib3d/table_of_content_calib3d/table_of_content_calib3d
features2d/table_of_content_features2d/table_of_content_features2d
video/table_of_content_video/table_of_content_video
objdetect/table_of_content_objdetect/table_of_content_objdetect
ml/table_of_content_ml/table_of_content_ml
gpu/table_of_content_gpu/table_of_content_gpu
general/table_of_content_general/table_of_content_general