.. _Table-Of-Content-Core:

*core* module. The Core Functionality
-----------------------------------------------------------

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.

.. include:: ../../definitions/tocDefinitions.rst

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

  =============== ======================================================
   |MatBasicIma|  **Title:** :ref:`matTheBasicImageContainer`

                  *Compatibility:* > OpenCV 2.0

                  *Author:* |Author_BernatG|

                  You will learn how to store images in the memory and how to print out their content to the console.

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

  .. |MatBasicIma| image:: images/matTheBasicImageStructure.jpg
                   :height: 90pt
                   :width:  90pt

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

  =============== ======================================================
   |HowScanImag|  **Title:** :ref:`howToScanImagesOpenCV`

                  *Compatibility:* > OpenCV 2.0

                  *Author:* |Author_BernatG|

                  You'll find out how to scan images (go through each of the image pixels) with OpenCV. Bonus: time measurement with OpenCV.

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

  .. |HowScanImag| image:: images/howToScanImages.jpg
                   :height: 90pt
                   :width:  90pt
                   

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

  =============== ======================================================
   |HowFilterIm|  **Title:** :ref:`maskOperationsFilter`

                  *Compatibility:* > OpenCV 2.0

                  *Author:* |Author_BernatG|

                  You'll find out how to scan images with neighbor access and use the :filtering:`filter2D <filter2d>` function to apply kernel filters on images.

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

  .. |HowFilterIm| image:: images/matMaskFilter2DOp.png
                   :height: 90pt
                   :width:  90pt

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

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

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

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



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

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

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

  =============== ======================================================
   |DiscFourTr|   **Title:** :ref:`discretFourierTransform`

                  *Compatibility:* > OpenCV 2.0

                  *Author:* |Author_BernatG|

                  You will see how and why use the Discrete Fourier transformation with OpenCV.

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

  .. |DiscFourTr| image:: images/discrete_fourier_transform.png
                   :height: 90pt
                   :width:  90pt

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

  =============== ======================================================
  |FileIOXMLYAML| **Title:** :ref:`fileInputOutputXMLYAML`

                  *Compatibility:* > OpenCV 2.0

                  *Author:* |Author_BernatG|

                  You will see how to use the :xmlymlpers:`FileStorage <filestorage>` data structure of OpenCV to write and read data to XML or YAML file format.

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

  .. |FileIOXMLYAML| image:: images/file_input_output_with_xml_yml.png
                   :height: 90pt
                   :width:  90pt

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

  =============== ======================================================
  |InterOOpenCV1| **Title:** :ref:`InteroperabilityWithOpenCV1`

                  *Compatibility:* > OpenCV 2.0

                  *Author:* |Author_BernatG|

                  Did you used OpenCV before its 2.0 version? Do you wanna know what happened with your library with 2.0? Don't you know how to convert your old OpenCV programs to the new C++ interface? Look here to shed light on all this questions.
                  
  =============== ======================================================

  .. |InterOOpenCV1| image:: images/interopOpenCV1.png
                   :height: 90pt
                   :width:  90pt



.. raw:: latex

   \pagebreak

.. toctree::
   :hidden:
   
   ../mat_the_basic_image_container/mat_the_basic_image_container
   ../how_to_scan_images/how_to_scan_images
   ../mat-mask-operations/mat-mask-operations
   ../adding_images/adding_images
   ../basic_linear_transform/basic_linear_transform
   ../basic_geometric_drawing/basic_geometric_drawing
   ../random_generator_and_text/random_generator_and_text
   ../discrete_fourier_transform/discrete_fourier_transform
   ../file_input_output_with_xml_yml/file_input_output_with_xml_yml
   ../interoperability_with_OpenCV_1/interoperability_with_OpenCV_1