# Documentation

## Tutorials (v3.1.0)

### Introduction

* [Installation in Linux](https://docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.html)
* [Using OpenCV with gcc and CMake](https://docs.opencv.org/3.1.0/db/df5/tutorial_linux_gcc_cmake.html)
* [Load and Display an Image](https://docs.opencv.org/3.1.0/db/deb/tutorial_display_image.html)
* [Load, Modify, and Save an Image](https://docs.opencv.org/3.1.0/db/d64/tutorial_load_save_image.html)

### The Core Functionality (core module)

* [Mat - The Basic Image Container](https://docs.opencv.org/3.1.0/d6/d6d/tutorial_mat_the_basic_image_container.html)
* [How to scan images, lookup tables and time measurement](https://docs.opencv.org/3.1.0/db/da5/tutorial_how_to_scan_images.html)
* [Basic Drawing](https://docs.opencv.org/3.1.0/d3/d96/tutorial_basic_geometric_drawing.html)
* [Mask operations on matrices](https://docs.opencv.org/3.1.0/d7/d37/tutorial_mat_mask_operations.html) (a.k.a. Kernel operations)
* [File Input and Output using XML and YAML files](https://docs.opencv.org/3.1.0/dd/d74/tutorial_file_input_output_with_xml_yml.html) (cv::FileStorage data structure)

### Image Processing (imgproc module)

* [Smoothing Images](https://docs.opencv.org/3.1.0/dc/dd3/tutorial_gausian_median_blur_bilateral_filter.html) (cv::GaussianBlur, cv::bilateralFilter)
* [Image Pyramids](https://docs.opencv.org/3.1.0/d4/d1f/tutorial_pyramids.html)
* [Sobel Derivatives](https://docs.opencv.org/3.1.0/d2/d2c/tutorial_sobel_derivatives.html)
* [Hough Circle Transform](https://docs.opencv.org/3.1.0/d4/d70/tutorial_hough_circle.html)
* [Image Moments](https://docs.opencv.org/3.1.0/d0/d49/tutorial_moments.html)

### Camera calibration and 3D reconstruction (calib3d module)

* [Camera calibration with square chessboard](https://docs.opencv.org/3.1.0/dc/d43/tutorial_camera_calibration_square_chess.html)
* [Camera calibration With OpenCV](https://docs.opencv.org/3.1.0/d4/d94/tutorial_camera_calibration.html)
  \*

  ```
  Determine the distortion matrix
  ```

  * Determine the camera matrix
  * Take input from Camera, Video and Image file list
  * Read configuration from XML/YAML file
  * Save the results into XML/YAML file
  * Calculate re-projection error
* [Real time pose estimation of a textured object](https://docs.opencv.org/3.1.0/dc/d2c/tutorial_real_time_pose.html)
  \*

  ```
  Read 3D textured object model and object mesh.
  ```

  * Take input from Camera or Video.
  * Extract ORB features and descriptors from the scene.
  * Match scene descriptors with model descriptors using Flann matcher.
  * Pose estimation using PnP + Ransac.
  * Linear Kalman Filter for bad poses rejection.

### 2D Features framework (feature2d module)

* [Harris corner detector](https://docs.opencv.org/3.1.0/d4/d7d/tutorial_harris_detector.html)
* [Creating your own corner detector](https://docs.opencv.org/3.1.0/d9/dbc/tutorial_generic_corner_detector.html)
* [Feature Detection](https://docs.opencv.org/3.1.0/d7/d66/tutorial_feature_detection.html)
* [Feature Description](https://docs.opencv.org/3.1.0/d5/dde/tutorial_feature_description.html)
  * [Feature Matching with FLANN](https://docs.opencv.org/3.1.0/d5/d6f/tutorial_feature_flann_matcher.html)
* [Features2D + Homography to find a known object](https://docs.opencv.org/3.1.0/d7/dff/tutorial_feature_homography.html) (transformation estimation)
* [AKAZE and ORB planar tracking](https://docs.opencv.org/3.1.0/dc/d16/tutorial_akaze_tracking.html)

### Tutorials for contrib modules

* [ArUco marker detection (aruco module)](https://docs.opencv.org/3.1.0/d9/d6d/tutorial_table_of_content_aruco.html)
* [Line Features Tutorial](https://docs.opencv.org/3.1.0/df/dfa/tutorial_line_descriptor_main.html)
* [Structure From Motion](https://docs.opencv.org/3.1.0/de/d7c/tutorial_table_of_content_sfm.html)
