Image Processing (imgproc module) {#tutorial_table_of_content_imgproc} ================================= In this section you will learn about the image processing (manipulation) functions inside OpenCV. - @subpage tutorial_basic_geometric_drawing *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán We will learn how to draw simple geometry with OpenCV! - @subpage tutorial_random_generator_and_text *Languages:* C++ *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán We will draw some *fancy-looking* stuff using OpenCV! - @subpage tutorial_gausian_median_blur_bilateral_filter *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Let's take a look at some basic linear filters! - @subpage tutorial_erosion_dilatation *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 Author: Ana Huamán Let's *change* the shape of objects! - @subpage tutorial_opening_closing_hats *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Here we investigate different morphology operators - @subpage tutorial_hitOrMiss *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.4 *Author:* Lorena García Learn how to find patterns in binary images using the Hit-or-Miss operation - @subpage tutorial_morph_lines_detection *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Theodore Tsesmelis Here we will show how we can use different morphological operators to extract horizontal and vertical lines - @subpage tutorial_pyramids *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán What if I need a bigger/smaller image? - @subpage tutorial_threshold *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán After so much processing, it is time to decide which pixels stay - @subpage tutorial_threshold_inRange *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Rishiraj Surti Thresholding operations using inRange function. - @subpage tutorial_filter_2d *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn to design our own filters by using OpenCV functions - @subpage tutorial_copyMakeBorder *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to pad our images - @subpage tutorial_sobel_derivatives *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to calculate gradients and use them to detect edges - @subpage tutorial_laplace_operator *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn about the *Laplace* operator and how to detect edges with it - @subpage tutorial_canny_detector *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn a sophisticated alternative to detect edges - @subpage tutorial_hough_lines *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to detect lines - @subpage tutorial_hough_circle *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to detect circles - @subpage tutorial_generalized_hough_ballard_guil *Languages:* C++ *Compatibility:* \>= OpenCV 3.4 *Author:* Markus Heck Detect an object in a picture with the help of GeneralizedHoughBallard and GeneralizedHoughGuil. - @subpage tutorial_remap *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to manipulate pixels locations - @subpage tutorial_warp_affine *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to rotate, translate and scale our images - @subpage tutorial_histogram_equalization *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to improve the contrast in our images - @subpage tutorial_histogram_calculation *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to create and generate histograms - @subpage tutorial_histogram_comparison *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn to calculate metrics between histograms - @subpage tutorial_back_projection *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to use histograms to find similar objects in images - @subpage tutorial_template_matching *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Ana Huamán Where we learn how to match templates in an image - @subpage tutorial_table_of_contents_contours Learn how to find contours in images and investigate their properties and features. - @subpage tutorial_distance_transform *Languages:* C++, Java, Python *Compatibility:* \> OpenCV 2.0 *Author:* Theodore Tsesmelis Where we learn to segment objects using Laplacian filtering, the Distance Transformation and the Watershed algorithm. - @subpage tutorial_out_of_focus_deblur_filter *Languages:* C++ *Compatibility:* \> OpenCV 2.0 *Author:* Karpushin Vladislav You will learn how to recover an out-of-focus image by Wiener filter. - @subpage tutorial_motion_deblur_filter *Languages:* C++ *Compatibility:* \> OpenCV 2.0 *Author:* Karpushin Vladislav You will learn how to recover an image with motion blur distortion using a Wiener filter. - @subpage tutorial_anisotropic_image_segmentation_by_a_gst *Languages:* C++, Python *Compatibility:* \> OpenCV 2.0 *Author:* Karpushin Vladislav You will learn how to segment an anisotropic image with a single local orientation by a gradient structure tensor. - @subpage tutorial_periodic_noise_removing_filter *Languages:* C++ *Compatibility:* \> OpenCV 2.0 *Author:* Karpushin Vladislav You will learn how to remove periodic noise in the Fourier domain.