.. _Table-Of-Content-Introduction:

Introduction to OpenCV
-----------------------------------------------------------

Here you can read tutorials about how to set up your computer to work with the OpenCV library.
Additionally 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.jpg
                 :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.jpg
               :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

  =========== ======================================================
  |WinVSVis|  **Title:** :ref:`Windows_Visual_Studio_Image_Watch`

              *Compatibility:* >= OpenCV 2.4

              *Author:* Wolf Kienzle

              You will learn how to visualize OpenCV matrices and images within Visual Studio 2012.

  =========== ======================================================

     .. |WinVSVis| image:: images/visual_studio_image_watch.png
                        :height: 90pt
                        :width:  90pt

* **Desktop Java**

  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ================ =================================================
  |JavaLogo|       **Title:** :ref:`Java_Dev_Intro`

                   *Compatibility:* > OpenCV 2.4.4

                   *Authors:* |Author_EricCh| and |Author_AndreyP|

                   Explains how to build and run a simple desktop Java application using Eclipse, Ant or the Simple Build Tool (SBT).

  ================ =================================================

     .. |JavaLogo| image:: images/Java_logo.png
                        :height: 90pt
                        :width:  90pt

* **Android**

  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ================ =================================================
  |AndroidLogo|    **Title:** :ref:`Android_Dev_Intro`

                   *Compatibility:* > OpenCV 2.4.2

                   *Author:* |Author_VsevolodG|

                   Not a tutorial, but a guide introducing Android development basics and environment setup

  ================ =================================================

  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ================ =================================================
  |AndroidLogo|    **Title:** :ref:`O4A_SDK`

                   *Compatibility:* > OpenCV 2.4.2

                   *Author:* |Author_VsevolodG|

                   OpenCV4Android SDK: general info, installation, running samples

  ================ =================================================

  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ================ =================================================
  |AndroidLogo|    **Title:** :ref:`dev_with_OCV_on_Android`

                   *Compatibility:* > OpenCV 2.4.3

                   *Author:* |Author_VsevolodG|

                   Development with OpenCV4Android SDK

  ================ =================================================

     .. |AndroidLogo| image:: images/android_logo.png
                        :height: 90pt
                        :width:  90pt


* **iOS**

  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  ============= ======================================================
  |Install_iOS|  **Title:** :ref:`iOS-Installation`

                 *Compatibility:* > OpenCV 2.4.2

                 *Author:* |Author_ArtemM|, |Author_EduardF|

                 We will learn how to setup OpenCV for using it in iOS!

  ============= ======================================================

     .. |Install_iOS| image:: images/opencv_ios.png
                 :width:  90pt

* **Embedded Linux**

  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  =========== ======================================================
  |Usage_1|   **Title:** :ref:`ARM-Linux-cross-compile`

              *Compatibility:* > OpenCV 2.4.4

              *Author:* |Author_AlexS|

              We will learn how to setup OpenCV cross compilation environment for ARM Linux.

  =========== ======================================================

* **Common**

  .. 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.jpg
                     :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.jpg
                     :height: 90pt
                     :width:  90pt

* **Want to contribute, and see your own work between the OpenCV tutorials?**

  .. tabularcolumns:: m{100pt} m{300pt}
  .. cssclass:: toctableopencv

  =============== ======================================================
   |HowToWriteT|  **Title:** :ref:`howToWriteTutorial`

                  *Compatibility:* > OpenCV 1.0

                  *Author:* |Author_BernatG|

                  If you already have a good grasp on using OpenCV and have made some projects that would be perfect presenting an OpenCV feature not yet part of these tutorials, here it is what you need to know.

  =============== ======================================================

  .. |HowToWriteT| image:: images/how_to_write_a_tutorial.png
                   :height: 90pt
                   :width:  90pt

.. raw:: latex

   \pagebreak

.. We use a custom table of content format and as the table of content only informs 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
   ../windows_visual_studio_image_watch/windows_visual_studio_image_watch
   ../desktop_java/java_dev_intro
   ../android_binary_package/android_dev_intro
   ../android_binary_package/O4A_SDK
   ../android_binary_package/dev_with_OCV_on_Android
   ../ios_install/ios_install
   ../crosscompilation/arm_crosscompile_with_cmake
   ../display_image/display_image
   ../load_save_image/load_save_image
   ../how_to_write_a_tutorial/how_to_write_a_tutorial
