.. _Table-Of-Content-ImgProc:

*imgproc* module. Image Processing
-----------------------------------------------------------

In this section you will learn about the image processing (manipulation) functions inside OpenCV.

.. toctree::
   :hidden:
   
   ../gausian_median_blur_bilateral_filter/gausian_median_blur_bilateral_filter
   ../erosion_dilatation/erosion_dilatation
   ../opening_closing_hats/opening_closing_hats
   ../pyramids/pyramids
   ../threshold/threshold
   ../imgtrans/filter_2d/filter_2d
   ../imgtrans/copyMakeBorder/copyMakeBorder
   ../imgtrans/sobel_derivatives/sobel_derivatives
   ../imgtrans/laplace_operator/laplace_operator
   ../imgtrans/canny_detector/canny_detector
   ../imgtrans/hough_lines/hough_lines
   ../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

