.. _Table-Of-Content-ImgProc: *imgproc* module. Image Processing ----------------------------------------------------------- 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.jpg :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.jpg :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.jpg :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.jpg :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.jpg :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 + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |HistEqualization| **Title:** :ref:`histogram_equalization` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn how to improve the contrast in our images ===================== ============================================== .. |HistEqualization| image:: images/histograms/Histogram_Equalization_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |HistCalculation| **Title:** :ref:`histogram_calculation` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn how to create and generate histograms ===================== ============================================== .. |HistCalculation| image:: images/histograms/Histogram_Calculation_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |HistComparison| **Title:** :ref:`histogram_comparison` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn to calculate metrics between histograms ===================== ============================================== .. |HistComparison| image:: images/histograms/Histogram_Comparison_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |BackProjection| **Title:** :ref:`back_projection` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn how to use histograms to find similar objects in images ===================== ============================================== .. |BackProjection| image:: images/histograms/Back_Projection_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |TemplateMatching| **Title:** :ref:`template_matching` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn how to match templates in an image ===================== ============================================== .. |TemplateMatching| image:: images/histograms/Template_Matching_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |FindContours| **Title:** :ref:`find_contours` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn how to find contours of objects in our image ===================== ============================================== .. |FindContours| image:: images/shapedescriptors/Find_Contours_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |Hull| **Title:** :ref:`hull` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn how to get hull contours and draw them! ===================== ============================================== .. |Hull| image:: images/shapedescriptors/Hull_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |BRC| **Title:** :ref:`bounding_rects_circles` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn how to obtain bounding boxes and circles for our contours. ===================== ============================================== .. |BRC| image:: images/shapedescriptors/Bounding_Rects_Circles_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |BRE| **Title:** :ref:`bounding_rotated_ellipses` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn how to obtain rotated bounding boxes and ellipses for our contours. ===================== ============================================== .. |BRE| image:: images/shapedescriptors/Bounding_Rotated_Ellipses_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |MU| **Title:** :ref:`moments` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn to calculate the moments of an image ===================== ============================================== .. |MU| image:: images/shapedescriptors/Moments_Tutorial_Cover.jpg :height: 90pt :width: 90pt + .. tabularcolumns:: m{100pt} m{300pt} .. cssclass:: toctableopencv ===================== ============================================== |PPT| **Title:** :ref:`point_polygon_test` *Compatibility:* > OpenCV 2.0 *Author:* |Author_AnaH| Where we learn how to calculate distances from the image to contours ===================== ============================================== .. |PPT| image:: images/shapedescriptors/Point_Polygon_Test_Tutorial_Cover.jpg :height: 90pt :width: 90pt .. raw:: latex \pagebreak .. 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 ../histograms/histogram_equalization/histogram_equalization ../histograms/histogram_calculation/histogram_calculation ../histograms/histogram_comparison/histogram_comparison ../histograms/back_projection/back_projection ../histograms/template_matching/template_matching ../shapedescriptors/find_contours/find_contours ../shapedescriptors/hull/hull ../shapedescriptors/bounding_rects_circles/bounding_rects_circles ../shapedescriptors/bounding_rotated_ellipses/bounding_rotated_ellipses ../shapedescriptors/moments/moments ../shapedescriptors/point_polygon_test/point_polygon_test