提交 461e26b6 编写于 作者: M Maksim Shabunin

doc: tutorial refactor

上级 6fdb7aee
#!/usr/bin/env python
from pathlib import Path
import re
# Tasks
# 1. Find all tutorials
# 2. Generate tree (@subpage)
# 3. Check prev/next nodes
class Tutorial(object):
def __init__(self, path):
self.path = path
self.title = None # doxygen title
self.children = [] # ordered titles
self.prev = None
self.next = None
with open(path, "rt") as f:
self.parse(f)
def parse(self, f):
rx_title = re.compile(r"\{#(\w+)\}")
rx_subpage = re.compile(r"@subpage\s+(\w+)")
rx_prev = re.compile(r"@prev_tutorial\{(\w+)\}")
rx_next = re.compile(r"@next_tutorial\{(\w+)\}")
for line in f:
if self.title is None:
m = rx_title.search(line)
if m:
self.title = m.group(1)
continue
if self.prev is None:
m = rx_prev.search(line)
if m:
self.prev = m.group(1)
continue
if self.next is None:
m = rx_next.search(line)
if m:
self.next = m.group(1)
continue
m = rx_subpage.search(line)
if m:
self.children.append(m.group(1))
continue
def verify_prev_next(self, storage):
res = True
if self.title is None:
print("[W] No title")
res = False
prev = None
for one in self.children:
c = storage[one]
if c.prev is not None and c.prev != prev:
print("[W] Wrong prev_tutorial: expected {} / actual {}".format(c.prev, prev))
res = False
prev = c.title
next = None
for one in reversed(self.children):
c = storage[one]
if c.next is not None and c.next != next:
print("[W] Wrong next_tutorial: expected {} / actual {}".format(c.next, next))
res = False
next = c.title
if len(self.children) == 0 and self.prev is None and self.next is None:
print("[W] No prev and next tutorials")
res = False
return res
if __name__ == "__main__":
p = Path('tutorials')
print("Looking for tutorials in: '{}'".format(p))
all_tutorials = dict()
for f in p.glob('**/*'):
if f.suffix.lower() in ('.markdown', '.md'):
t = Tutorial(f)
all_tutorials[t.title] = t
res = 0
print("Found: {}".format(len(all_tutorials)))
print("------")
for title, t in all_tutorials.items():
if not t.verify_prev_next(all_tutorials):
print("[E] Verification failed: {}".format(t.path))
print("------")
res = 1
exit(res)
High Level GUI and Media (highgui module) {#tutorial_table_of_content_highgui}
=========================================
Content has been moved to this page: @ref tutorial_table_of_content_app
Image Input and Output (imgcodecs module) {#tutorial_table_of_content_imgcodecs}
=========================================
This section contains tutorials about how to read/save your image files.
- @subpage tutorial_raster_io_gdal
*Languages:* C++
*Compatibility:* \> OpenCV 2.0
*Author:* Marvin Smith
Read common GIS Raster and DEM files to display and manipulate geographic data.
Content has been moved to this page: @ref tutorial_table_of_content_app
Video Input and Output (videoio module) {#tutorial_table_of_content_videoio}
=========================================
Content has been moved to this page: @ref tutorial_table_of_content_app
Reading Geospatial Raster files with GDAL {#tutorial_raster_io_gdal}
=========================================
@prev_tutorial{tutorial_trackbar}
@next_tutorial{tutorial_video_input_psnr_ssim}
| | |
| -: | :- |
| Original author | Marvin Smith |
| Compatibility | OpenCV >= 3.0 |
Geospatial raster data is a heavily used product in Geographic Information Systems and
Photogrammetry. Raster data typically can represent imagery and Digital Elevation Models (DEM). The
standard library for loading GIS imagery is the Geographic Data Abstraction Library [(GDAL)](http://www.gdal.org). In this
......
Application utils (highgui, imgcodecs, videoio modules) {#tutorial_table_of_content_app}
=======================================================
- @subpage tutorial_trackbar
- @subpage tutorial_raster_io_gdal
- @subpage tutorial_video_input_psnr_ssim
- @subpage tutorial_video_write
- @subpage tutorial_kinect_openni
- @subpage tutorial_orbbec_astra
- @subpage tutorial_intelperc
Adding a Trackbar to our applications! {#tutorial_trackbar}
======================================
@next_tutorial{tutorial_raster_io_gdal}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
- In the previous tutorials (about @ref tutorial_adding_images and the @ref tutorial_basic_linear_transform)
you might have noted that we needed to give some **input** to our programs, such
as \f$\alpha\f$ and \f$beta\f$. We accomplished that by entering this data using the Terminal.
......
Video Input with OpenCV and similarity measurement {#tutorial_video_input_psnr_ssim}
==================================================
@prev_tutorial{tutorial_raster_io_gdal}
@next_tutorial{tutorial_video_write}
| | |
| -: | :- |
| Original author | Bernát Gábor |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Creating a video with OpenCV {#tutorial_video_write}
@prev_tutorial{tutorial_video_input_psnr_ssim}
@next_tutorial{tutorial_kinect_openni}
| | |
| -: | :- |
| Original author | Bernát Gábor |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Camera calibration With OpenCV {#tutorial_camera_calibration}
@prev_tutorial{tutorial_camera_calibration_square_chess}
@next_tutorial{tutorial_real_time_pose}
| | |
| -: | :- |
| Original author | Bernát Gábor |
| Compatibility | OpenCV >= 4.0 |
Cameras have been around for a long-long time. However, with the introduction of the cheap *pinhole*
cameras in the late 20th century, they became a common occurrence in our everyday life.
......
......@@ -3,6 +3,11 @@ Create calibration pattern {#tutorial_camera_calibration_pattern}
@next_tutorial{tutorial_camera_calibration_square_chess}
| | |
| -: | :- |
| Original author | Laurent Berger |
| Compatibility | OpenCV >= 3.0 |
The goal of this tutorial is to learn how to create calibration pattern.
......
......@@ -4,6 +4,11 @@ Camera calibration with square chessboard {#tutorial_camera_calibration_square_c
@prev_tutorial{tutorial_camera_calibration_pattern}
@next_tutorial{tutorial_camera_calibration}
| | |
| -: | :- |
| Original author | Victor Eruhimov |
| Compatibility | OpenCV >= 4.0 |
The goal of this tutorial is to learn how to calibrate a camera given a set of chessboard images.
......
......@@ -3,6 +3,11 @@ Interactive camera calibration application {#tutorial_interactive_calibration}
@prev_tutorial{tutorial_real_time_pose}
| | |
| -: | :- |
| Original author | Vladislav Sovrasov |
| Compatibility | OpenCV >= 3.1 |
According to classical calibration technique user must collect all data first and when run @ref cv::calibrateCamera function
to obtain camera parameters. If average re-projection error is huge or if estimated parameters seems to be wrong, process of
......
......@@ -4,6 +4,11 @@ Real Time pose estimation of a textured object {#tutorial_real_time_pose}
@prev_tutorial{tutorial_camera_calibration}
@next_tutorial{tutorial_interactive_calibration}
| | |
| -: | :- |
| Original author | Edgar Riba |
| Compatibility | OpenCV >= 3.0 |
Nowadays, augmented reality is one of the top research topic in computer vision and robotics fields.
The most elemental problem in augmented reality is the estimation of the camera pose respect of an
......
Camera calibration and 3D reconstruction (calib3d module) {#tutorial_table_of_content_calib3d}
==========================================================
Although we get most of our images in a 2D format they do come from a 3D world. Here you will learn how to find out 3D world information from 2D images.
- @subpage tutorial_camera_calibration_pattern
*Languages:* Python
*Compatibility:* \> OpenCV 2.0
*Author:* Laurent Berger
You will learn how to create some calibration pattern.
- @subpage tutorial_camera_calibration_square_chess
*Languages:* C++
*Compatibility:* \> OpenCV 2.0
*Author:* Victor Eruhimov
You will use some chessboard images to calibrate your camera.
- @subpage tutorial_camera_calibration
*Languages:* C++
*Compatibility:* \> OpenCV 4.0
*Author:* Bernát Gábor
Camera calibration by using either the chessboard, circle or the asymmetrical circle
pattern. Get the images either from a camera attached, a video file or from an image
collection.
- @subpage tutorial_real_time_pose
*Languages:* C++
*Compatibility:* \> OpenCV 2.0
*Author:* Edgar Riba
Real time pose estimation of a textured object using ORB features, FlannBased matcher, PnP
approach plus Ransac and Linear Kalman Filter to reject possible bad poses.
- @subpage tutorial_interactive_calibration
*Compatibility:* \> OpenCV 3.1
*Author:* Vladislav Sovrasov
Camera calibration by using either the chessboard, chAruco, asymmetrical circle or dual asymmetrical circle
pattern. Calibration process is continuous, so you can see results after each new pattern shot.
As an output you get average reprojection error, intrinsic camera parameters, distortion coefficients and
confidence intervals for all of evaluated variables.
......@@ -4,6 +4,12 @@ Adding (blending) two images using OpenCV {#tutorial_adding_images}
@prev_tutorial{tutorial_mat_operations}
@next_tutorial{tutorial_basic_linear_transform}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
We will learn how to blend two images!
Goal
----
......
......@@ -4,6 +4,11 @@ Changing the contrast and brightness of an image! {#tutorial_basic_linear_transf
@prev_tutorial{tutorial_adding_images}
@next_tutorial{tutorial_discrete_fourier_transform}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Discrete Fourier Transform {#tutorial_discrete_fourier_transform}
@prev_tutorial{tutorial_basic_linear_transform}
@next_tutorial{tutorial_file_input_output_with_xml_yml}
| | |
| -: | :- |
| Original author | Bernát Gábor |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ File Input and Output using XML and YAML files {#tutorial_file_input_output_with
@prev_tutorial{tutorial_discrete_fourier_transform}
@next_tutorial{tutorial_how_to_use_OpenCV_parallel_for_}
| | |
| -: | :- |
| Original author | Bernát Gábor |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ How to scan images, lookup tables and time measurement with OpenCV {#tutorial_ho
@prev_tutorial{tutorial_mat_the_basic_image_container}
@next_tutorial{tutorial_mat_mask_operations}
| | |
| -: | :- |
| Original author | Bernát Gábor |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -3,6 +3,10 @@ How to use the OpenCV parallel_for_ to parallelize your code {#tutorial_how_to_u
@prev_tutorial{tutorial_file_input_output_with_xml_yml}
| | |
| -: | :- |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Mask operations on matrices {#tutorial_mat_mask_operations}
@prev_tutorial{tutorial_how_to_scan_images}
@next_tutorial{tutorial_mat_operations}
| | |
| -: | :- |
| Original author | Bernát Gábor |
| Compatibility | OpenCV >= 3.0 |
Mask operations on matrices are quite simple. The idea is that we recalculate each pixel's value in
an image according to a mask matrix (also known as kernel). This mask holds values that will adjust
how much influence neighboring pixels (and the current pixel) have on the new pixel value. From a
......
......@@ -4,6 +4,10 @@ Operations with images {#tutorial_mat_operations}
@prev_tutorial{tutorial_mat_mask_operations}
@next_tutorial{tutorial_adding_images}
| | |
| -: | :- |
| Compatibility | OpenCV >= 3.0 |
Input/Output
------------
......
......@@ -3,6 +3,11 @@ Mat - The Basic Image Container {#tutorial_mat_the_basic_image_container}
@next_tutorial{tutorial_how_to_scan_images}
| | |
| -: | :- |
| Original author | Bernát Gábor |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
The Core Functionality (core module) {#tutorial_table_of_content_core}
=====================================
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.
- @subpage tutorial_mat_the_basic_image_container
*Languages:* C++
*Compatibility:* \> OpenCV 2.0
*Author:* Bernát Gábor
You will learn how to store images in the memory and how to print out their content to the
console.
- @subpage tutorial_how_to_scan_images
*Languages:* C++
*Compatibility:* \> OpenCV 2.0
*Author:* Bernát Gábor
You'll find out how to scan images (go through each of the image pixels) with OpenCV.
Bonus: time measurement with OpenCV.
- @subpage tutorial_mat_mask_operations
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Bernát Gábor
You'll find out how to scan images with neighbor access and use the @ref cv::filter2D
function to apply kernel filters on images.
- @subpage tutorial_mat_operations
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
Reading/writing images from file, accessing pixels, primitive operations, visualizing images.
- @subpage tutorial_adding_images
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
We will learn how to blend two images!
- @subpage tutorial_basic_linear_transform
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
We will learn how to change our image appearance!
- @subpage tutorial_discrete_fourier_transform
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Bernát Gábor
You will see how and why use the Discrete Fourier transformation with OpenCV.
- @subpage tutorial_file_input_output_with_xml_yml
*Languages:* C++, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Bernát Gábor
You will see how to use the @ref cv::FileStorage data structure of OpenCV to write and read
data to XML or YAML file format.
- @subpage tutorial_how_to_use_OpenCV_parallel_for_
*Languages:* C++
*Compatibility:* \>= OpenCV 2.4.3
You will see how to use the OpenCV parallel_for_ to easily parallelize your code.
......@@ -3,6 +3,11 @@
@prev_tutorial{tutorial_dnn_custom_layers}
@next_tutorial{tutorial_dnn_text_spotting}
| | |
| -: | :- |
| Original author | Zihao Mu |
| Compatibility | OpenCV >= 4.3 |
## Introduction
In this tutorial, we first introduce how to obtain the custom OCR model, then how to transform your own OCR models so that they can be run correctly by the opencv_dnn module. and finally we will provide some pre-trained models.
......
......@@ -3,6 +3,11 @@
@prev_tutorial{tutorial_dnn_halide_scheduling}
@next_tutorial{tutorial_dnn_yolo}
| | |
| -: | :- |
| Original author | Dmitry Kurtaev |
| Compatibility | OpenCV >= 3.3 |
## Introduction
In this tutorial you'll know how to run deep learning networks on Android device
using OpenCV deep learning module.
......
......@@ -3,6 +3,11 @@
@prev_tutorial{tutorial_dnn_javascript}
@next_tutorial{tutorial_dnn_OCR}
| | |
| -: | :- |
| Original author | Dmitry Kurtaev |
| Compatibility | OpenCV >= 3.4.1 |
## Introduction
Deep learning is a fast growing area. The new approaches to build neural networks
usually introduce new types of layers. They could be modifications of existing
......
......@@ -3,6 +3,11 @@ Load Caffe framework models {#tutorial_dnn_googlenet}
@next_tutorial{tutorial_dnn_halide}
| | |
| -: | :- |
| Original author | Vitaliy Lyudvichenko |
| Compatibility | OpenCV >= 3.3 |
Introduction
------------
......
......@@ -3,6 +3,11 @@
@prev_tutorial{tutorial_dnn_googlenet}
@next_tutorial{tutorial_dnn_halide_scheduling}
| | |
| -: | :- |
| Original author | Dmitry Kurtaev |
| Compatibility | OpenCV >= 3.3 |
## Introduction
This tutorial guidelines how to run your models in OpenCV deep learning module
using Halide language backend. Halide is an open-source project that let us
......
......@@ -3,6 +3,11 @@
@prev_tutorial{tutorial_dnn_halide}
@next_tutorial{tutorial_dnn_android}
| | |
| -: | :- |
| Original author | Dmitry Kurtaev |
| Compatibility | OpenCV >= 3.3 |
## Introduction
Halide code is the same for every device we use. But for achieving the satisfied
efficiency we should schedule computations properly. In this tutorial we describe
......
......@@ -3,6 +3,11 @@
@prev_tutorial{tutorial_dnn_yolo}
@next_tutorial{tutorial_dnn_custom_layers}
| | |
| -: | :- |
| Original author | Dmitry Kurtaev |
| Compatibility | OpenCV >= 3.3.1 |
## Introduction
This tutorial will show us how to run deep learning models using OpenCV.js right
in a browser. Tutorial refers a sample of face detection and face recognition
......
......@@ -2,6 +2,11 @@
@prev_tutorial{tutorial_dnn_OCR}
| | |
| -: | :- |
| Original author | Wenqing Zhang |
| Compatibility | OpenCV >= 4.5 |
## Introduction
In this tutorial, we will introduce the APIs for TextRecognitionModel and TextDetectionModel in detail.
......
......@@ -4,6 +4,11 @@ YOLO DNNs {#tutorial_dnn_yolo}
@prev_tutorial{tutorial_dnn_android}
@next_tutorial{tutorial_dnn_javascript}
| | |
| -: | :- |
| Original author | Alessandro de Oliveira Faria |
| Compatibility | OpenCV >= 3.3.1 |
Introduction
------------
......
......@@ -2,91 +2,11 @@ Deep Neural Networks (dnn module) {#tutorial_table_of_content_dnn}
=====================================
- @subpage tutorial_dnn_googlenet
*Languages:* C++
*Compatibility:* \> OpenCV 3.3
*Author:* Vitaliy Lyudvichenko
In this tutorial you will learn how to use opencv_dnn module for image classification by using GoogLeNet trained network from Caffe model zoo.
- @subpage tutorial_dnn_halide
*Languages:* Halide
*Compatibility:* \> OpenCV 3.3
*Author:* Dmitry Kurtaev
This tutorial guidelines how to run your models in OpenCV deep learning module using Halide language backend.
- @subpage tutorial_dnn_halide_scheduling
*Languages:* Halide
*Compatibility:* \> OpenCV 3.3
*Author:* Dmitry Kurtaev
In this tutorial we describe the ways to schedule your networks using Halide backend in OpenCV deep learning module.
- @subpage tutorial_dnn_android
*Languages:* Java
*Compatibility:* \> OpenCV 3.3
*Author:* Dmitry Kurtaev
This tutorial will show you how to run deep learning model using OpenCV on Android device.
- @subpage tutorial_dnn_yolo
*Languages:* C++, Python
*Compatibility:* \> OpenCV 3.3.1
*Author:* Alessandro de Oliveira Faria
In this tutorial you will learn how to use opencv_dnn module using yolo_object_detection with device capture, video file or image.
- @subpage tutorial_dnn_javascript
*Languages:* JavaScript
*Compatibility:* \> OpenCV 3.3.1
*Author:* Dmitry Kurtaev
In this tutorial we'll run deep learning models in browser using OpenCV.js.
- @subpage tutorial_dnn_custom_layers
*Languages:* C++, Python
*Compatibility:* \> OpenCV 3.4.1
*Author:* Dmitry Kurtaev
How to define custom layers to import networks.
- @subpage tutorial_dnn_OCR
*Languages:* C++
*Compatibility:* \> OpenCV 4.3
*Author:* Zihao Mu
In this tutorial you will learn how to use opencv_dnn module using custom OCR models.
- @subpage tutorial_dnn_text_spotting
*Languages:* C++
*Compatibility:* \> OpenCV 4.5
*Author:* Wenqing Zhang
In these tutorial, we'll introduce how to use the high-level APIs for text recognition and text detection
......@@ -4,6 +4,11 @@ AKAZE local features matching {#tutorial_akaze_matching}
@prev_tutorial{tutorial_detection_of_planar_objects}
@next_tutorial{tutorial_akaze_tracking}
| | |
| -: | :- |
| Original author | Fedor Morozov |
| Compatibility | OpenCV >= 3.0 |
Introduction
------------
......
......@@ -4,6 +4,11 @@ AKAZE and ORB planar tracking {#tutorial_akaze_tracking}
@prev_tutorial{tutorial_akaze_matching}
@next_tutorial{tutorial_homography}
| | |
| -: | :- |
| Original author | Fedor Morozov |
| Compatibility | OpenCV >= 3.0 |
Introduction
------------
......
......@@ -4,6 +4,10 @@ Detection of planar objects {#tutorial_detection_of_planar_objects}
@prev_tutorial{tutorial_feature_homography}
@next_tutorial{tutorial_akaze_matching}
| | |
| -: | :- |
| Original author | Victor Eruhimov |
| Compatibility | OpenCV >= 3.0 |
The goal of this tutorial is to learn how to use *features2d* and *calib3d* modules for detecting
known planar objects in scenes.
......
......@@ -4,6 +4,11 @@ Feature Description {#tutorial_feature_description}
@prev_tutorial{tutorial_feature_detection}
@next_tutorial{tutorial_feature_flann_matcher}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Feature Detection {#tutorial_feature_detection}
@prev_tutorial{tutorial_corner_subpixels}
@next_tutorial{tutorial_feature_description}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Feature Matching with FLANN {#tutorial_feature_flann_matcher}
@prev_tutorial{tutorial_feature_description}
@next_tutorial{tutorial_feature_homography}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Features2D + Homography to find a known object {#tutorial_feature_homography}
@prev_tutorial{tutorial_feature_flann_matcher}
@next_tutorial{tutorial_detection_of_planar_objects}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -3,6 +3,10 @@ Basic concepts of the homography explained with code {#tutorial_homography}
@prev_tutorial{tutorial_akaze_tracking}
| | |
| -: | :- |
| Compatibility | OpenCV >= 3.0 |
@tableofcontents
Introduction {#tutorial_homography_Introduction}
......
2D Features framework (feature2d module) {#tutorial_table_of_content_features2d}
=========================================
Learn about how to use the feature points detectors, descriptors and matching framework found inside
OpenCV.
- @subpage tutorial_harris_detector
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Why is it a good idea to track corners? We learn how to use the Harris method to detect
corners.
- @subpage tutorial_good_features_to_track
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Where we use an improved method to detect corners more accurately.
- @subpage tutorial_generic_corner_detector
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Here you will learn how to use OpenCV functions to make your personalized corner detector!
*Languages:* C++, Java, Python
- @subpage tutorial_corner_subpixels
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Is pixel resolution enough? Here we learn a simple method to improve our corner location accuracy.
- @subpage tutorial_feature_detection
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
In this tutorial, you will use *features2d* to detect interest points.
- @subpage tutorial_feature_description
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
In this tutorial, you will use *features2d* to calculate feature vectors.
- @subpage tutorial_feature_flann_matcher
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
In this tutorial, you will use the FLANN library to make a fast matching.
- @subpage tutorial_feature_homography
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
In this tutorial, you will use *features2d* and *calib3d* to detect an object in a scene.
- @subpage tutorial_detection_of_planar_objects
*Languages:* C++
*Compatibility:* \> OpenCV 2.0
*Author:* Victor Eruhimov
You will use *features2d* and *calib3d* modules for detecting known planar objects in
scenes.
- @subpage tutorial_akaze_matching
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 3.0
*Author:* Fedor Morozov
Using *AKAZE* local features to find correspondence between two images.
- @subpage tutorial_akaze_tracking
*Languages:* C++
*Compatibility:* \> OpenCV 3.0
*Author:* Fedor Morozov
Using *AKAZE* and *ORB* for planar object tracking.
- @subpage tutorial_homography
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 3.0
This tutorial will explain the basic concepts of the homography with some
demonstration codes.
......@@ -4,6 +4,11 @@ Detecting corners location in subpixels {#tutorial_corner_subpixels}
@prev_tutorial{tutorial_generic_corner_detector}
@next_tutorial{tutorial_feature_detection}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,10 @@ Creating your own corner detector {#tutorial_generic_corner_detector}
@prev_tutorial{tutorial_good_features_to_track}
@next_tutorial{tutorial_corner_subpixels}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Shi-Tomasi corner detector {#tutorial_good_features_to_track}
@prev_tutorial{tutorial_harris_detector}
@next_tutorial{tutorial_generic_corner_detector}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -3,6 +3,11 @@ Harris corner detector {#tutorial_harris_detector}
@next_tutorial{tutorial_good_features_to_track}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
# Porting anisotropic image segmentation on G-API {#tutorial_gapi_anisotropic_segmentation}
@prev_tutorial{tutorial_gapi_interactive_face_detection}
@next_tutorial{tutorial_gapi_face_beautification}
[TOC]
# Introduction {#gapi_anisotropic_intro}
......
# Implementing a face beautification algorithm with G-API {#tutorial_gapi_face_beautification}
@prev_tutorial{tutorial_gapi_anisotropic_segmentation}
[TOC]
# Introduction {#gapi_fb_intro}
......
# Face analytics pipeline with G-API {#tutorial_gapi_interactive_face_detection}
@next_tutorial{tutorial_gapi_anisotropic_segmentation}
[TOC]
# Overview {#gapi_ifd_intro}
......
High Level GUI and Media (highgui module) {#tutorial_table_of_content_highgui}
=========================================
This section contains tutorials about how to use the built-in graphical user interface of the library.
- @subpage tutorial_trackbar
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
We will learn how to add a Trackbar to our applications
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
......@@ -4,6 +4,11 @@ Anisotropic image segmentation by a gradient structure tensor {#tutorial_anisotr
@prev_tutorial{tutorial_motion_deblur_filter}
@next_tutorial{tutorial_periodic_noise_removing_filter}
| | |
| -: | :- |
| Original author | Karpushin Vladislav |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -3,6 +3,11 @@ Basic Drawing {#tutorial_basic_geometric_drawing}
@next_tutorial{tutorial_random_generator_and_text}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goals
-----
......
......@@ -4,6 +4,11 @@ Eroding and Dilating {#tutorial_erosion_dilatation}
@prev_tutorial{tutorial_gausian_median_blur_bilateral_filter}
@next_tutorial{tutorial_opening_closing_hats}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Smoothing Images {#tutorial_gausian_median_blur_bilateral_filter}
@prev_tutorial{tutorial_random_generator_and_text}
@next_tutorial{tutorial_erosion_dilatation}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Back Projection {#tutorial_back_projection}
@prev_tutorial{tutorial_histogram_comparison}
@next_tutorial{tutorial_template_matching}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Histogram Calculation {#tutorial_histogram_calculation}
@prev_tutorial{tutorial_histogram_equalization}
@next_tutorial{tutorial_histogram_comparison}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Histogram Comparison {#tutorial_histogram_comparison}
@prev_tutorial{tutorial_histogram_calculation}
@next_tutorial{tutorial_back_projection}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Histogram Equalization {#tutorial_histogram_equalization}
@prev_tutorial{tutorial_warp_affine}
@next_tutorial{tutorial_histogram_calculation}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Template Matching {#tutorial_template_matching}
@prev_tutorial{tutorial_back_projection}
@next_tutorial{tutorial_find_contours}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Hit-or-Miss {#tutorial_hitOrMiss}
@prev_tutorial{tutorial_opening_closing_hats}
@next_tutorial{tutorial_morph_lines_detection}
| | |
| -: | :- |
| Original author | Lorena García |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Canny Edge Detector {#tutorial_canny_detector}
@prev_tutorial{tutorial_laplace_operator}
@next_tutorial{tutorial_hough_lines}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Adding borders to your images {#tutorial_copyMakeBorder}
@prev_tutorial{tutorial_filter_2d}
@next_tutorial{tutorial_sobel_derivatives}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Image Segmentation with Distance Transform and Watershed Algorithm {#tutorial_di
@prev_tutorial{tutorial_point_polygon_test}
@next_tutorial{tutorial_out_of_focus_deblur_filter}
| | |
| -: | :- |
| Original author | Theodore Tsesmelis |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Making your own linear filters! {#tutorial_filter_2d}
@prev_tutorial{tutorial_threshold_inRange}
@next_tutorial{tutorial_copyMakeBorder}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Hough Circle Transform {#tutorial_hough_circle}
@prev_tutorial{tutorial_hough_lines}
@next_tutorial{tutorial_remap}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Hough Line Transform {#tutorial_hough_lines}
@prev_tutorial{tutorial_canny_detector}
@next_tutorial{tutorial_hough_circle}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Laplace Operator {#tutorial_laplace_operator}
@prev_tutorial{tutorial_sobel_derivatives}
@next_tutorial{tutorial_canny_detector}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Remapping {#tutorial_remap}
@prev_tutorial{tutorial_hough_circle}
@next_tutorial{tutorial_warp_affine}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Sobel Derivatives {#tutorial_sobel_derivatives}
@prev_tutorial{tutorial_copyMakeBorder}
@next_tutorial{tutorial_laplace_operator}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Affine Transformations {#tutorial_warp_affine}
@prev_tutorial{tutorial_remap}
@next_tutorial{tutorial_histogram_equalization}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Extract horizontal and vertical lines by using morphological operations {#tutori
@prev_tutorial{tutorial_hitOrMiss}
@next_tutorial{tutorial_pyramids}
| | |
| -: | :- |
| Original author | Theodore Tsesmelis |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Motion Deblur Filter {#tutorial_motion_deblur_filter}
@prev_tutorial{tutorial_out_of_focus_deblur_filter}
@next_tutorial{tutorial_anisotropic_image_segmentation_by_a_gst}
| | |
| -: | :- |
| Original author | Karpushin Vladislav |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ More Morphology Transformations {#tutorial_opening_closing_hats}
@prev_tutorial{tutorial_erosion_dilatation}
@next_tutorial{tutorial_hitOrMiss}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Out-of-focus Deblur Filter {#tutorial_out_of_focus_deblur_filter}
@prev_tutorial{tutorial_distance_transform}
@next_tutorial{tutorial_motion_deblur_filter}
| | |
| -: | :- |
| Original author | Karpushin Vladislav |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -3,6 +3,11 @@ Periodic Noise Removing Filter {#tutorial_periodic_noise_removing_filter}
@prev_tutorial{tutorial_anisotropic_image_segmentation_by_a_gst}
| | |
| -: | :- |
| Original author | Karpushin Vladislav |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Image Pyramids {#tutorial_pyramids}
@prev_tutorial{tutorial_morph_lines_detection}
@next_tutorial{tutorial_threshold}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Random generator and text with OpenCV {#tutorial_random_generator_and_text}
@prev_tutorial{tutorial_basic_geometric_drawing}
@next_tutorial{tutorial_gausian_median_blur_bilateral_filter}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goals
-----
......
......@@ -4,6 +4,11 @@ Creating Bounding boxes and circles for contours {#tutorial_bounding_rects_circl
@prev_tutorial{tutorial_hull}
@next_tutorial{tutorial_bounding_rotated_ellipses}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Creating Bounding rotated boxes and ellipses for contours {#tutorial_bounding_ro
@prev_tutorial{tutorial_bounding_rects_circles}
@next_tutorial{tutorial_moments}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Finding contours in your image {#tutorial_find_contours}
@prev_tutorial{tutorial_template_matching}
@next_tutorial{tutorial_hull}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Convex Hull {#tutorial_hull}
@prev_tutorial{tutorial_find_contours}
@next_tutorial{tutorial_bounding_rects_circles}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Image Moments {#tutorial_moments}
@prev_tutorial{tutorial_bounding_rotated_ellipses}
@next_tutorial{tutorial_point_polygon_test}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Point Polygon Test {#tutorial_point_polygon_test}
@prev_tutorial{tutorial_moments}
@next_tutorial{tutorial_distance_transform}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
Image Processing (imgproc module) {#tutorial_table_of_content_imgproc}
=================================
In this section you will learn about the image processing (manipulation) functions inside OpenCV.
Basic
-----
- @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.
Transformations
---------------
- @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_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
Histograms
----------
- @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.
Contours
--------
- @subpage tutorial_find_contours
- @subpage tutorial_hull
- @subpage tutorial_bounding_rects_circles
- @subpage tutorial_bounding_rotated_ellipses
- @subpage tutorial_moments
- @subpage tutorial_point_polygon_test
Others
------
- @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.
Contours in OpenCV {#tutorial_table_of_contents_contours}
==================
- @subpage tutorial_find_contours
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Where we learn how to find contours of objects in our image
- @subpage tutorial_hull
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Where we learn how to get hull contours and draw them
- @subpage tutorial_bounding_rects_circles
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Where we learn how to obtain bounding boxes and circles for our contours
- @subpage tutorial_bounding_rotated_ellipses
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Where we learn how to obtain rotated bounding boxes and ellipses for our contours
- @subpage tutorial_moments
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Where we learn to calculate the moments of an image
- @subpage tutorial_point_polygon_test
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Where we learn how to calculate distances from the image to contours
Content has been moved to this page: @ref tutorial_table_of_content_imgproc
......@@ -4,6 +4,11 @@ Basic Thresholding Operations {#tutorial_threshold}
@prev_tutorial{tutorial_pyramids}
@next_tutorial{tutorial_threshold_inRange}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Thresholding Operations using inRange {#tutorial_threshold_inRange}
@prev_tutorial{tutorial_threshold}
@next_tutorial{tutorial_filter_2d}
| | |
| -: | :- |
| Original author | Lorena García |
| Compatibility | Rishiraj Surti |
Goal
----
......
OpenCV configuration options reference {#tutorial_config_reference}
======================================
@prev_tutorial{tutorial_general_install}
@next_tutorial{tutorial_linux_install}
@tableofcontents
# Introduction {#tutorial_config_reference_intro}
......
Cross compilation for ARM based Linux systems {#tutorial_arm_crosscompile_with_cmake}
=============================================
@prev_tutorial{tutorial_ios_install}
@prev_tutorial{tutorial_macos_install}
@next_tutorial{tutorial_building_tegra_cuda}
| | |
......
......@@ -667,20 +667,9 @@ Write the tutorial {#tutorial_documentation_steps_tutorial}
6. Add newly created tutorial to the corresponding table of contents. Just find
<em>"table_of_content_*.markdown"</em> file with the needed table and place new record in it
similar to existing ones.
@verbatim
- @subpage tutorial_windows_visual_studio_image_watch
_Languages:_ C++, Java, Python
_Compatibility:_ \>= OpenCV 2.4
_Author:_ Wolf Kienzle
You will learn how to visualize OpenCV matrices and images within Visual Studio 2012.
@endverbatim
As you can see it is just a list item with special _subpage_ command which marks your page as a
child and places it into the existing pages hierarchy. Add compatibility information,
authors list and short description. Also note the list item indent, empty lines between
It is simply a list item with special _subpage_ command which marks your page as a
child and places it into the existing pages hierarchy. Also note the list item indent, empty lines between
paragraphs and special _italic_ markers.
7. Generate doxygen documentation and verify results.
......
OpenCV installation overview {#tutorial_general_install}
============================
@next_tutorial{tutorial_config_reference}
@tableofcontents
There are two ways of installing OpenCV on your machine: download prebuilt version for your platform or compile from sources.
......
......@@ -2,7 +2,7 @@ Installation in MacOS {#tutorial_macos_install}
=====================
@prev_tutorial{tutorial_android_ocl_intro}
@next_tutorial{tutorial_ios_install}
@next_tutorial{tutorial_arm_crosscompile_with_cmake}
| | |
| -: | :- |
......
......@@ -25,9 +25,9 @@ Introduction to OpenCV {#tutorial_table_of_content_introduction}
##### Other platforms
- @subpage tutorial_macos_install
- @subpage tutorial_ios_install
- @subpage tutorial_arm_crosscompile_with_cmake
- @subpage tutorial_building_tegra_cuda
- @ref tutorial_ios_install
##### Usage basics
- @subpage tutorial_display_image - We will learn how to load an image from file and display it using OpenCV
......
OpenCV iOS Hello {#tutorial_hello}
================
@prev_tutorial{tutorial_ios_install}
@next_tutorial{tutorial_image_manipulation}
| | |
| -: | :- |
| Original author | Charu Hans |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ OpenCV iOS - Image Processing {#tutorial_image_manipulation}
@prev_tutorial{tutorial_hello}
@next_tutorial{tutorial_video_processing}
| | |
| -: | :- |
| Original author | Charu Hans |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
Installation in iOS {#tutorial_ios_install}
===================
@prev_tutorial{tutorial_macos_install}
@next_tutorial{tutorial_arm_crosscompile_with_cmake}
@next_tutorial{tutorial_hello}
| | |
| -: | :- |
......
OpenCV iOS {#tutorial_table_of_content_ios}
==========
- @subpage tutorial_ios_install
- @subpage tutorial_hello
*Languages:* Objective-C++
*Compatibility:* \> OpenCV 2.4.3
*Author:* Charu Hans
You will learn how to link OpenCV with iOS and write a basic application.
- @subpage tutorial_image_manipulation
*Languages:* Objective-C++
*Compatibility:* \> OpenCV 2.4.3
*Author:* Charu Hans
You will learn how to do simple image manipulation using OpenCV in iOS.
- @subpage tutorial_video_processing
*Languages:* Objective-C++
*Compatibility:* \> OpenCV 2.4.3
*Author:* Eduard Feicho
You will learn how to capture and process video from camera using OpenCV in iOS.
......@@ -3,6 +3,11 @@ OpenCV iOS - Video Processing {#tutorial_video_processing}
@prev_tutorial{tutorial_image_manipulation}
| | |
| -: | :- |
| Original author | Eduard Feicho |
| Compatibility | OpenCV >= 3.0 |
This tutorial explains how to process video frames using the iPhone's camera and OpenCV.
......
Machine Learning (ml module) {#tutorial_table_of_content_ml}
============================
Use the powerful machine learning classes for statistical classification, regression and clustering
of data.
- @subpage tutorial_introduction_to_svm
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Fernando Iglesias García
Learn what a Support Vector Machine is.
- @subpage tutorial_non_linear_svms
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Fernando Iglesias García
Here you will learn how to define the optimization problem for SVMs when it is not possible to
separate linearly the training data.
- @subpage tutorial_introduction_to_pca
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Theodore Tsesmelis
Learn what a Principal Component Analysis (PCA) is.
Object Detection (objdetect module) {#tutorial_table_of_content_objdetect}
===================================
Ever wondered how your digital camera detects peoples and faces? Look here to find out!
- @subpage tutorial_cascade_classifier
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Ana Huamán
Here we learn how to use *objdetect* to find objects in our images or videos
- @subpage tutorial_traincascade
This tutorial describes _opencv_traincascade_ application and its parameters.
Machine Learning (ml module) {#tutorial_table_of_content_ml}
============================
Content has been moved to this page: @ref tutorial_table_of_content_other
Object Detection (objdetect module) {#tutorial_table_of_content_objdetect}
===================================
Content has been moved to this page: @ref tutorial_table_of_content_other
Computational photography (photo module) {#tutorial_table_of_content_photo}
========================================
Use OpenCV for advanced photo processing.
- @subpage tutorial_hdr_imaging
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 3.0
*Author:* Fedor Morozov
Learn how to create and process high dynamic range images.
Content has been moved to this page: @ref tutorial_table_of_content_other
Images stitching (stitching module) {#tutorial_table_of_content_stitching}
===================================
Content has been moved to this page: @ref tutorial_table_of_content_other
Video analysis (video module) {#tutorial_table_of_content_video}
=============================
Content has been moved to this page: @ref tutorial_table_of_content_other
How to Use Background Subtraction Methods {#tutorial_background_subtraction}
=========================================
@prev_tutorial{tutorial_stitcher}
@next_tutorial{tutorial_meanshift}
| | |
| -: | :- |
| Original author | Domenico Daniele Bloisi |
| Compatibility | OpenCV >= 3.0 |
- Background subtraction (BS) is a common and widely used technique for generating a foreground
mask (namely, a binary image containing the pixels belonging to moving objects in the scene) by
using static cameras.
......
Cascade Classifier {#tutorial_cascade_classifier}
==================
@prev_tutorial{tutorial_optical_flow}
@next_tutorial{tutorial_traincascade}
| | |
| -: | :- |
| Original author | Ana Huamán |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
High Dynamic Range Imaging {#tutorial_hdr_imaging}
==========================
@next_tutorial{tutorial_stitcher}
| | |
| -: | :- |
| Original author | Fedor Morozov |
| Compatibility | OpenCV >= 3.0 |
Introduction
------------
......
......@@ -3,6 +3,11 @@ Introduction to Principal Component Analysis (PCA) {#tutorial_introduction_to_pc
@prev_tutorial{tutorial_non_linear_svms}
| | |
| -: | :- |
| Original author | Theodore Tsesmelis |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
Introduction to Support Vector Machines {#tutorial_introduction_to_svm}
=======================================
@prev_tutorial{tutorial_traincascade}
@next_tutorial{tutorial_non_linear_svms}
| | |
| -: | :- |
| Original author | Fernando Iglesias García |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -4,6 +4,11 @@ Support Vector Machines for Non-Linearly Separable Data {#tutorial_non_linear_sv
@prev_tutorial{tutorial_introduction_to_svm}
@next_tutorial{tutorial_introduction_to_pca}
| | |
| -: | :- |
| Original author | Fernando Iglesias García |
| Compatibility | OpenCV >= 3.0 |
Goal
----
......
......@@ -2,6 +2,7 @@ Optical Flow {#tutorial_optical_flow}
============
@prev_tutorial{tutorial_meanshift}
@next_tutorial{tutorial_cascade_classifier}
Goal
----
......
High level stitching API (Stitcher class) {#tutorial_stitcher}
=========================================
@prev_tutorial{tutorial_hdr_imaging}
@next_tutorial{tutorial_background_subtraction}
| | |
| -: | :- |
| Original author | Jiri Horner |
| Compatibility | OpenCV >= 3.2 |
Goal
----
......
Other tutorials (ml, objdetect, photo, stitching, video) {#tutorial_table_of_content_other}
========================================================
- photo. @subpage tutorial_hdr_imaging
- stitching. @subpage tutorial_stitcher
- video. @subpage tutorial_background_subtraction
- video. @subpage tutorial_meanshift
- video. @subpage tutorial_optical_flow
- objdetect. @subpage tutorial_cascade_classifier
- objdetect. @subpage tutorial_traincascade
- ml. @subpage tutorial_introduction_to_svm
- ml. @subpage tutorial_non_linear_svms
- ml. @subpage tutorial_introduction_to_pca
......@@ -2,6 +2,7 @@ Cascade Classifier Training {#tutorial_traincascade}
===========================
@prev_tutorial{tutorial_cascade_classifier}
@next_tutorial{tutorial_introduction_to_svm}
Introduction
------------
......
此差异由.gitattributes 抑制。
Images stitching (stitching module) {#tutorial_table_of_content_stitching}
===================================
Sometimes a single image can't capture it all. Here you will learn how to join
more images together to create a large pano. Doesn't matter if you want to
create a photo panorama or you want to stitch scans.
- @subpage tutorial_stitcher
*Languages:* C++
*Compatibility:* \>= OpenCV 3.2
*Author:* Jiri Horner
You will use high level stitching api to create a photo panorama. You will
learn about Stitcher class and its configurations.
......@@ -4,18 +4,12 @@ OpenCV Tutorials {#tutorial_root}
- @subpage tutorial_table_of_content_introduction - build and install OpenCV on your computer
- @subpage tutorial_table_of_content_core - basic building blocks of the library
- @subpage tutorial_table_of_content_imgproc - image processing functions
- @subpage tutorial_table_of_content_highgui - built-in graphical user interface
- @subpage tutorial_table_of_content_imgcodecs - read and write images from/to files using _imgcodecs_ module
- @subpage tutorial_table_of_content_videoio - read and write videos using _videio_ module
- @subpage tutorial_table_of_content_app - application utils (GUI, image/video input/output)
- @subpage tutorial_table_of_content_calib3d - extract 3D world information from 2D images
- @subpage tutorial_table_of_content_features2d - feature detectors, descriptors and matching framework
- @subpage tutorial_table_of_content_video - algorithms for video streams: motion detection, object and feature tracking, etc.
- @subpage tutorial_table_of_content_objdetect - detect objects using conventional CV methods
- @subpage tutorial_table_of_content_dnn - infer neural networks using built-in _dnn_ module
- @subpage tutorial_table_of_content_ml - machine learning algorithms for statistical classification, regression and data clustering
- @subpage tutorial_table_of_content_gapi - graph-based approach to computer vision algorithms building
- @subpage tutorial_table_of_content_photo - advanced photo processing
- @subpage tutorial_table_of_content_stitching - create panoramas and more using _stitching_ module
- @subpage tutorial_table_of_content_other - other modules (ml, objdetect, stitching, video, photo)
- @subpage tutorial_table_of_content_ios - running OpenCV on an iDevice
@cond CUDA_MODULES
- @subpage tutorial_table_of_content_gpu - utilizing power of video card to run CV algorithms
......
Video analysis (video module) {#tutorial_table_of_content_video}
=============================
Look here in order to find use on your video stream algorithms like: motion extraction, feature
tracking and foreground extractions.
- @subpage tutorial_background_subtraction
*Languages:* C++, Java, Python
*Compatibility:* \> OpenCV 2.4.6
*Author:* Domenico Daniele Bloisi
We will learn how to extract foreground masks from both videos and sequences of images and
to show them.
- @subpage tutorial_meanshift
*Languages:* C++, Java, Python
Learn how to use the Meanshift and Camshift algorithms to track objects in videos.
- @subpage tutorial_optical_flow
*Languages:* C++, Java, Python
We will learn how to use optical flow methods to track sparse features or to create a dense representation.
Video Input and Output (videoio module) {#tutorial_table_of_content_videoio}
=========================================
This section contains tutorials about how to read/save your video files.
- @subpage tutorial_video_input_psnr_ssim
*Languages:* C++, Python
*Compatibility:* \> OpenCV 2.0
*Author:* Bernát Gábor
You will learn how to read video streams, and how to calculate similarity values such as PSNR
or SSIM.
- @subpage tutorial_video_write
*Languages:* C++
*Compatibility:* \> OpenCV 2.0
*Author:* Bernát Gábor
- @subpage tutorial_kinect_openni
*Languages:* C++
- @subpage tutorial_orbbec_astra
*Languages:* C++
- @subpage tutorial_intelperc
*Languages:* C++
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册