From 899781b3d6313fb593d7528efc7673a0fb4b9186 Mon Sep 17 00:00:00 2001 From: abidrahmank Date: Sun, 22 Sep 2013 00:14:27 +0530 Subject: [PATCH] GSoC Python Tutorials GSoC Python Tutorials removed white spaces removed blank lines at EOF removed duplicate labels --- doc/py_tutorials/images/MachineLearnings.jpg | Bin 0 -> 3227 bytes doc/py_tutorials/images/calib3d_icon.jpg | Bin 0 -> 3209 bytes doc/py_tutorials/images/core.jpg | Bin 0 -> 4163 bytes doc/py_tutorials/images/featureicon.jpg | Bin 0 -> 5127 bytes doc/py_tutorials/images/gui.jpg | Bin 0 -> 3323 bytes doc/py_tutorials/images/imgproc.jpg | Bin 0 -> 2712 bytes doc/py_tutorials/images/intro.png | Bin 0 -> 3287 bytes doc/py_tutorials/images/obj_icon.jpg | Bin 0 -> 2925 bytes doc/py_tutorials/images/photoicon.jpg | Bin 0 -> 5058 bytes doc/py_tutorials/images/videoicon.jpg | Bin 0 -> 6438 bytes .../py_calibration/images/calib_pattern.jpg | Bin 0 -> 45994 bytes .../py_calibration/images/calib_radial.jpg | Bin 0 -> 33341 bytes .../py_calibration/images/calib_result.jpg | Bin 0 -> 23073 bytes .../py_calibration/py_calibration.rst | 213 ++++++++++++++ .../py_depthmap/images/disparity_map.jpg | Bin 0 -> 18979 bytes .../py_depthmap/images/stereo_depth.jpg | Bin 0 -> 13451 bytes .../py_calib3d/py_depthmap/py_depthmap.rst | 67 +++++ .../py_epipolar_geometry/images/epipolar.jpg | Bin 0 -> 10934 bytes .../py_epipolar_geometry/images/epiresult.jpg | Bin 0 -> 80343 bytes .../images/essential_matrix.jpg | Bin 0 -> 15526 bytes .../py_epipolar_geometry.rst | 158 ++++++++++ .../py_calib3d/py_pose/images/pose_1.jpg | Bin 0 -> 45502 bytes .../py_calib3d/py_pose/images/pose_2.jpg | Bin 0 -> 26861 bytes .../py_calib3d/py_pose/py_pose.rst | 132 +++++++++ .../images/calibration_icon.jpg | Bin 0 -> 3668 bytes .../images/depthmap_icon.jpg | Bin 0 -> 3743 bytes .../images/epipolar_icon.jpg | Bin 0 -> 3648 bytes .../images/pose_icon.jpg | Bin 0 -> 3603 bytes .../py_table_of_contents_calib3d.rst | 79 +++++ .../py_core/py_basic_ops/images/border.jpg | Bin 0 -> 45520 bytes .../py_core/py_basic_ops/images/roi.jpg | Bin 0 -> 27080 bytes .../py_core/py_basic_ops/py_basic_ops.rst | 181 ++++++++++++ .../py_image_arithmetics/images/blending.jpg | Bin 0 -> 18624 bytes .../py_image_arithmetics/images/overlay.jpg | Bin 0 -> 23829 bytes .../py_image_arithmetics.rst | 115 ++++++++ .../py_core/py_maths_tools/py_maths_tools.rst | 4 + .../py_optimization/py_optimization.rst | 141 +++++++++ .../images/image_arithmetic.jpg | Bin 0 -> 2087 bytes .../images/maths_tools.jpg | Bin 0 -> 3195 bytes .../images/pixel_ops.jpg | Bin 0 -> 4163 bytes .../images/speed.jpg | Bin 0 -> 2957 bytes .../py_table_of_contents_core.rst | 75 +++++ .../py_feature2d/py_brief/py_brief.rst | 63 ++++ .../py_feature2d/py_fast/images/fast_eqns.jpg | Bin 0 -> 6315 bytes .../py_feature2d/py_fast/images/fast_kp.jpg | Bin 0 -> 25609 bytes .../py_fast/images/fast_speedtest.jpg | Bin 0 -> 17861 bytes .../py_feature2d/py_fast/py_fast.rst | 136 +++++++++ .../images/homography_findobj.jpg | Bin 0 -> 31937 bytes .../py_feature_homography.rst | 110 +++++++ .../images/harris_region.jpg | Bin 0 -> 17497 bytes .../images/harris_result.jpg | Bin 0 -> 35007 bytes .../py_features_harris/images/subpixel3.png | Bin 0 -> 16243 bytes .../py_features_harris/py_features_harris.rst | 154 ++++++++++ .../images/feature_building.jpg | Bin 0 -> 50435 bytes .../images/feature_simple.png | Bin 0 -> 1063 bytes .../py_features_meaning.rst | 52 ++++ .../py_matcher/images/matcher_flann.jpg | Bin 0 -> 34601 bytes .../py_matcher/images/matcher_result1.jpg | Bin 0 -> 31620 bytes .../py_matcher/images/matcher_result2.jpg | Bin 0 -> 22407 bytes .../py_feature2d/py_matcher/py_matcher.rst | 207 ++++++++++++++ .../py_feature2d/py_orb/images/orb_kp.jpg | Bin 0 -> 23895 bytes .../py_feature2d/py_orb/py_orb.rst | 75 +++++ .../py_shi_tomasi/images/shitomasi_block1.jpg | Bin 0 -> 14506 bytes .../py_shi_tomasi/images/shitomasi_space.png | Bin 0 -> 4658 bytes .../py_shi_tomasi/py_shi_tomasi.rst | 77 +++++ .../py_sift_intro/images/sift_dog.jpg | Bin 0 -> 30688 bytes .../py_sift_intro/images/sift_keypoints.jpg | Bin 0 -> 34020 bytes .../images/sift_local_extrema.jpg | Bin 0 -> 15030 bytes .../images/sift_scale_invariant.jpg | Bin 0 -> 3386 bytes .../py_sift_intro/py_sift_intro.rst | 139 +++++++++ .../py_surf_intro/images/surf_boxfilter.jpg | Bin 0 -> 12995 bytes .../py_surf_intro/images/surf_kp1.jpg | Bin 0 -> 27166 bytes .../py_surf_intro/images/surf_kp2.jpg | Bin 0 -> 28476 bytes .../py_surf_intro/images/surf_matching.jpg | Bin 0 -> 11848 bytes .../py_surf_intro/images/surf_orientation.jpg | Bin 0 -> 7887 bytes .../py_surf_intro/py_surf_intro.rst | 145 ++++++++++ .../images/brief.jpg | Bin 0 -> 4840 bytes .../images/fast_icon.jpg | Bin 0 -> 3181 bytes .../images/features_icon.jpg | Bin 0 -> 4768 bytes .../images/harris_icon.jpg | Bin 0 -> 2903 bytes .../images/homography_icon.jpg | Bin 0 -> 4663 bytes .../images/matching.jpg | Bin 0 -> 5574 bytes .../images/orb.jpg | Bin 0 -> 7231 bytes .../images/shi_icon.jpg | Bin 0 -> 3819 bytes .../images/sift_icon.jpg | Bin 0 -> 3432 bytes .../images/surf_icon.jpg | Bin 0 -> 3442 bytes .../py_table_of_contents_feature2d.rst | 170 +++++++++++ .../py_drawing_functions/images/drawing.jpg | Bin 0 -> 14390 bytes .../py_drawing_functions.rst | 106 +++++++ .../images/matplotlib_screenshot.jpg | Bin 0 -> 27236 bytes .../images/opencv_screenshot.jpg | Bin 0 -> 25734 bytes .../py_image_display/py_image_display.rst | 139 +++++++++ .../py_mouse_handling/py_mouse_handling.rst | 108 +++++++ .../images/drawing.jpg | Bin 0 -> 2563 bytes .../images/image_display.jpg | Bin 0 -> 2577 bytes .../images/mouse_drawing.jpg | Bin 0 -> 1559 bytes .../images/trackbar.jpg | Bin 0 -> 2335 bytes .../images/video_display.jpg | Bin 0 -> 2604 bytes .../py_table_of_contents_gui.rst | 89 ++++++ .../images/trackbar_screenshot.jpg | Bin 0 -> 13446 bytes .../py_gui/py_trackbar/py_trackbar.rst | 71 +++++ .../py_video_display/py_video_display.rst | 132 +++++++++ .../py_imgproc/py_canny/images/canny1.jpg | Bin 0 -> 16496 bytes .../py_imgproc/py_canny/images/hysteresis.jpg | Bin 0 -> 13111 bytes .../py_imgproc/py_canny/images/nms.jpg | Bin 0 -> 11110 bytes .../py_imgproc/py_canny/py_canny.rst | 97 +++++++ .../py_colorspaces/images/frame.jpg | Bin 0 -> 8351 bytes .../py_colorspaces/py_colorspaces.rst | 104 +++++++ .../py_contour_features/images/approx.jpg | Bin 0 -> 12610 bytes .../images/boundingrect.png | Bin 0 -> 7291 bytes .../images/circumcircle.png | Bin 0 -> 7290 bytes .../images/convexitydefects.jpg | Bin 0 -> 12949 bytes .../py_contour_features/images/fitellipse.png | Bin 0 -> 6254 bytes .../py_contour_features/images/fitline.jpg | Bin 0 -> 6089 bytes .../py_contour_features.rst | 188 ++++++++++++ .../images/extremepoints.jpg | Bin 0 -> 10951 bytes .../py_contour_properties.rst | 126 ++++++++ .../py_contours_begin/images/none.jpg | Bin 0 -> 5028 bytes .../py_contours_begin/py_contours_begin.rst | 80 ++++++ .../images/ccomp_hierarchy.png | Bin 0 -> 11971 bytes .../images/hierarchy.png | Bin 0 -> 5168 bytes .../images/tree_hierarchy.png | Bin 0 -> 11917 bytes .../py_contours_hierarchy.rst | 177 ++++++++++++ .../images/defects.jpg | Bin 0 -> 10615 bytes .../images/matchshapes.jpg | Bin 0 -> 5484 bytes .../py_contours_more_functions.rst | 122 ++++++++ .../images/contour_defects.jpg | Bin 0 -> 3369 bytes .../images/contour_features.jpg | Bin 0 -> 3333 bytes .../images/contour_hierarchy.jpg | Bin 0 -> 91290 bytes .../images/contour_properties.jpg | Bin 0 -> 3844 bytes .../images/contour_starting.jpg | Bin 0 -> 3172 bytes .../py_table_of_contents_contours.rst | 89 ++++++ .../py_filtering/images/bilateral.jpg | Bin 0 -> 17991 bytes .../py_imgproc/py_filtering/images/blur.jpg | Bin 0 -> 23614 bytes .../py_imgproc/py_filtering/images/filter.jpg | Bin 0 -> 24000 bytes .../py_filtering/images/gaussian.jpg | Bin 0 -> 23929 bytes .../py_imgproc/py_filtering/images/median.jpg | Bin 0 -> 56768 bytes .../py_imgproc/py_filtering/py_filtering.rst | 151 ++++++++++ .../images/affine.jpg | Bin 0 -> 22685 bytes .../images/perspective.jpg | Bin 0 -> 23674 bytes .../images/rotation.jpg | Bin 0 -> 13587 bytes .../images/translation.jpg | Bin 0 -> 14098 bytes .../py_geometric_transformations.rst | 166 +++++++++++ .../py_imgproc/py_grabcut/images/grabcut.jpg | Bin 0 -> 22929 bytes .../py_grabcut/images/grabcut_mask.jpg | Bin 0 -> 11520 bytes .../py_grabcut/images/grabcut_output1.jpg | Bin 0 -> 17220 bytes .../py_grabcut/images/grabcut_rect.jpg | Bin 0 -> 12204 bytes .../py_imgproc/py_grabcut/py_grabcut.rst | 118 ++++++++ .../py_gradients/images/double_edge.jpg | Bin 0 -> 7738 bytes .../py_gradients/images/gradients.jpg | Bin 0 -> 89849 bytes .../py_imgproc/py_gradients/py_gradients.rst | 107 +++++++ .../images/2dhist_matplotlib.jpg | Bin 0 -> 15516 bytes .../py_2d_histogram/images/2dhist_opencv.jpg | Bin 0 -> 17372 bytes .../py_2d_histogram/py_2d_histogram.rst | 112 ++++++++ .../images/backproject_opencv.jpg | Bin 0 -> 34731 bytes .../py_histogram_backprojection.rst | 111 +++++++ .../images/histogram_masking.jpg | Bin 0 -> 24804 bytes .../images/histogram_matplotlib.jpg | Bin 0 -> 17641 bytes .../images/histogram_rgb_plot.jpg | Bin 0 -> 20361 bytes .../images/histogram_sample.jpg | Bin 0 -> 45913 bytes .../py_histogram_begins.rst | 169 +++++++++++ .../images/clahe_1.jpg | Bin 0 -> 48845 bytes .../images/clahe_2.jpg | Bin 0 -> 24097 bytes .../images/equalization_opencv.jpg | Bin 0 -> 26711 bytes .../images/histeq_numpy1.jpg | Bin 0 -> 14499 bytes .../images/histeq_numpy2.jpg | Bin 0 -> 29674 bytes .../images/histogram_equalization.png | Bin 0 -> 5385 bytes .../py_histogram_equalization.rst | 135 +++++++++ .../images/histograms_1d.jpg | Bin 0 -> 4139 bytes .../images/histograms_2d.jpg | Bin 0 -> 3501 bytes .../images/histograms_bp.jpg | Bin 0 -> 3590 bytes .../images/histograms_equ.jpg | Bin 0 -> 4225 bytes .../py_table_of_contents_histograms.rst | 77 +++++ .../py_houghcircles/images/houghcircles2.jpg | Bin 0 -> 21690 bytes .../py_houghcircles/py_houghcircles.rst | 52 ++++ .../py_houghlines/images/houghlines1.svg | 234 +++++++++++++++ .../py_houghlines/images/houghlines2.jpg | Bin 0 -> 6433 bytes .../py_houghlines/images/houghlines3.jpg | Bin 0 -> 43726 bytes .../py_houghlines/images/houghlines4.png | Bin 0 -> 19161 bytes .../py_houghlines/images/houghlines5.jpg | Bin 0 -> 42619 bytes .../py_houghlines/images/houghlinesdemo.gif | Bin 0 -> 48696 bytes .../py_houghlines/py_houghlines.rst | 121 ++++++++ .../py_morphological_ops/images/blackhat.png | Bin 0 -> 1146 bytes .../py_morphological_ops/images/closing.png | Bin 0 -> 2205 bytes .../py_morphological_ops/images/dilation.png | Bin 0 -> 923 bytes .../py_morphological_ops/images/erosion.png | Bin 0 -> 844 bytes .../py_morphological_ops/images/gradient.png | Bin 0 -> 1995 bytes .../py_morphological_ops/images/j.png | Bin 0 -> 1126 bytes .../py_morphological_ops/images/opening.png | Bin 0 -> 2082 bytes .../py_morphological_ops/images/tophat.png | Bin 0 -> 1531 bytes .../py_morphological_ops.rst | 161 +++++++++++ .../py_imgproc/py_pyramids/images/lap.jpg | Bin 0 -> 28842 bytes .../py_pyramids/images/messipyr.jpg | Bin 0 -> 46701 bytes .../py_imgproc/py_pyramids/images/messiup.jpg | Bin 0 -> 15088 bytes .../py_imgproc/py_pyramids/images/orapple.jpg | Bin 0 -> 52135 bytes .../py_imgproc/py_pyramids/py_pyramids.rst | 128 +++++++++ .../images/blurring.jpg | Bin 0 -> 28934 bytes .../images/canny.jpg | Bin 0 -> 4177 bytes .../images/colorspace.jpg | Bin 0 -> 2494 bytes .../images/contours.jpg | Bin 0 -> 59104 bytes .../images/geometric.jpg | Bin 0 -> 2594 bytes .../images/grabcut.jpg | Bin 0 -> 3348 bytes .../images/gradient.jpg | Bin 0 -> 66968 bytes .../images/histogram.jpg | Bin 0 -> 14904 bytes .../images/houghcircles.jpg | Bin 0 -> 2834 bytes .../images/houghlines.jpg | Bin 0 -> 2306 bytes .../images/morphology.jpg | Bin 0 -> 5431 bytes .../images/pyramid.png | Bin 0 -> 12454 bytes .../images/template.jpg | Bin 0 -> 4995 bytes .../images/thresh.jpg | Bin 0 -> 2481 bytes .../images/transforms.jpg | Bin 0 -> 3086 bytes .../images/watershed.jpg | Bin 0 -> 5617 bytes .../py_table_of_contents_imgproc.rst | 256 +++++++++++++++++ .../images/messi_face.jpg | Bin 0 -> 1687 bytes .../py_template_matching/images/res_mario.jpg | Bin 0 -> 35859 bytes .../images/template_ccoeff_1.jpg | Bin 0 -> 20145 bytes .../images/template_ccoeffn_2.jpg | Bin 0 -> 21113 bytes .../images/template_ccorr_3.jpg | Bin 0 -> 19180 bytes .../images/template_ccorrn_4.jpg | Bin 0 -> 20653 bytes .../images/template_sqdiff_5.jpg | Bin 0 -> 20073 bytes .../images/template_sqdiffn_6.jpg | Bin 0 -> 21005 bytes .../py_template_matching.rst | 145 ++++++++++ .../py_thresholding/images/ada_threshold.jpg | Bin 0 -> 72648 bytes .../py_thresholding/images/otsu.jpg | Bin 0 -> 35960 bytes .../py_thresholding/images/threshold.jpg | Bin 0 -> 15543 bytes .../py_thresholding/py_thresholding.rst | 221 ++++++++++++++ .../py_fourier_transform/images/fft1.jpg | Bin 0 -> 17964 bytes .../py_fourier_transform/images/fft2.jpg | Bin 0 -> 16029 bytes .../py_fourier_transform/images/fft4.jpg | Bin 0 -> 16366 bytes .../py_fourier_transform/images/fft5.jpg | Bin 0 -> 17442 bytes .../py_fourier_transform.rst | 255 +++++++++++++++++ .../images/transform_fourier.jpg | Bin 0 -> 4824 bytes .../py_table_of_contents_transforms.rst | 30 ++ .../py_watershed/images/water_coins.jpg | Bin 0 -> 16322 bytes .../py_watershed/images/water_dt.jpg | Bin 0 -> 15120 bytes .../py_watershed/images/water_fgbg.jpg | Bin 0 -> 20202 bytes .../py_watershed/images/water_marker.jpg | Bin 0 -> 16125 bytes .../py_watershed/images/water_result.jpg | Bin 0 -> 30960 bytes .../py_watershed/images/water_thresh.jpg | Bin 0 -> 12627 bytes .../py_imgproc/py_watershed/py_watershed.rst | 121 ++++++++ .../py_ml/py_kmeans/images/kmeans_begin.jpg | Bin 0 -> 3259 bytes .../py_ml/py_kmeans/images/kmeans_demo.jpg | Bin 0 -> 4219 bytes .../py_ml/py_kmeans/py_kmeans_index.rst | 41 +++ .../images/oc_1d_clustered.png | Bin 0 -> 11337 bytes .../images/oc_1d_testdata.png | Bin 0 -> 8955 bytes .../images/oc_2d_clustered.jpg | Bin 0 -> 10486 bytes .../images/oc_color_quantization.jpg | Bin 0 -> 31684 bytes .../images/oc_feature_representation.jpg | Bin 0 -> 12012 bytes .../py_kmeans_opencv/py_kmeans_opencv.rst | 192 +++++++++++++ .../images/final_clusters.jpg | Bin 0 -> 10581 bytes .../images/initial_labelling.jpg | Bin 0 -> 11914 bytes .../images/testdata.jpg | Bin 0 -> 11230 bytes .../py_kmeans_understanding/images/tshirt.jpg | Bin 0 -> 8983 bytes .../images/tshirt_grouped.jpg | Bin 0 -> 16571 bytes .../images/update_centroid.jpg | Bin 0 -> 12052 bytes .../py_kmeans_understanding.rst | 81 ++++++ .../py_ml/py_knn/images/knn_icon1.jpg | Bin 0 -> 2449 bytes .../py_ml/py_knn/images/knn_icon2.jpg | Bin 0 -> 4932 bytes .../py_ml/py_knn/py_knn_index.rst | 41 +++ .../py_knn/py_knn_opencv/py_knn_opencv.rst | 107 +++++++ .../images/knn_simple.png | Bin 0 -> 7473 bytes .../images/knn_theory.png | Bin 0 -> 6700 bytes .../py_knn_understanding.rst | 121 ++++++++ .../py_ml/py_svm/images/svm_icon1.jpg | Bin 0 -> 3956 bytes .../py_ml/py_svm/images/svm_icon2.jpg | Bin 0 -> 4645 bytes .../py_svm_basics/images/svm_basics1.png | Bin 0 -> 7731 bytes .../py_svm_basics/images/svm_basics2.png | Bin 0 -> 7998 bytes .../py_svm_basics/images/svm_basics3.png | Bin 0 -> 10353 bytes .../py_svm/py_svm_basics/py_svm_basics.rst | 103 +++++++ .../py_ml/py_svm/py_svm_index.rst | 42 +++ .../py_svm/py_svm_opencv/images/deskew.jpg | Bin 0 -> 11383 bytes .../py_svm/py_svm_opencv/py_svm_opencv.rst | 134 +++++++++ .../images/kmeansicon.jpg | Bin 0 -> 65638 bytes .../images/knnicon.png | Bin 0 -> 3424 bytes .../images/svmicon.png | Bin 0 -> 13155 bytes .../py_table_of_contents_ml.rst | 59 ++++ .../py_face_detection/images/face.jpg | Bin 0 -> 48977 bytes .../py_face_detection/images/haar.png | Bin 0 -> 14507 bytes .../images/haar_features.jpg | Bin 0 -> 10964 bytes .../py_face_detection/py_face_detection.rst | 104 +++++++ .../images/face_icon.jpg | Bin 0 -> 3868 bytes .../py_table_of_contents_objdetect.rst | 33 +++ .../py_inpainting/images/inpaint_basics.jpg | Bin 0 -> 19520 bytes .../py_inpainting/images/inpaint_result.jpg | Bin 0 -> 24459 bytes .../py_photo/py_inpainting/py_inpainting.rst | 70 +++++ .../py_non_local_means/images/nlm_multi.jpg | Bin 0 -> 26593 bytes .../py_non_local_means/images/nlm_patch.jpg | Bin 0 -> 16464 bytes .../py_non_local_means/images/nlm_result1.jpg | Bin 0 -> 18488 bytes .../py_non_local_means/py_non_local_means.rst | 139 +++++++++ .../images/inpainticon.jpg | Bin 0 -> 5020 bytes .../images/nlm_icon.jpg | Bin 0 -> 3735 bytes .../py_table_of_contents_photo.rst | 49 ++++ .../py_setup/py_intro/py_intro.rst | 69 +++++ .../py_setup_in_fedora/py_setup_in_fedora.rst | 270 ++++++++++++++++++ .../py_setup_in_windows/images/Capture1.jpg | Bin 0 -> 29483 bytes .../py_setup_in_windows/images/Capture2.png | Bin 0 -> 15972 bytes .../py_setup_in_windows/images/Capture3.png | Bin 0 -> 15102 bytes .../py_setup_in_windows/images/Capture5.png | Bin 0 -> 8946 bytes .../py_setup_in_windows/images/Capture6.png | Bin 0 -> 14663 bytes .../py_setup_in_windows/images/Capture7.png | Bin 0 -> 7871 bytes .../py_setup_in_windows/images/Capture8.png | Bin 0 -> 13134 bytes .../py_setup_in_windows/images/Capture80.png | Bin 0 -> 11246 bytes .../py_setup_in_windows.rst | 155 ++++++++++ .../images/fedora_logo.jpg | Bin 0 -> 3327 bytes .../images/opencv_logo.jpg | Bin 0 -> 4553 bytes .../images/windows_logo.jpg | Bin 0 -> 3191 bytes .../py_table_of_contents_setup.rst | 60 ++++ doc/py_tutorials/py_tutorials.rst | 180 ++++++++++++ .../py_bg_subtraction/images/resframe.jpg | Bin 0 -> 20013 bytes .../py_bg_subtraction/images/resgmg.jpg | Bin 0 -> 11631 bytes .../py_bg_subtraction/images/resmog.jpg | Bin 0 -> 6749 bytes .../py_bg_subtraction/images/resmog2.jpg | Bin 0 -> 10941 bytes .../py_bg_subtraction/py_bg_subtraction.rst | 162 +++++++++++ .../images/optical_flow_basic1.jpg | Bin 0 -> 6146 bytes .../py_lucas_kanade/images/opticalfb.jpg | Bin 0 -> 24600 bytes .../py_lucas_kanade/images/opticalflow_lk.jpg | Bin 0 -> 22792 bytes .../py_lucas_kanade/py_lucas_kanade.rst | 212 ++++++++++++++ .../py_meanshift/images/camshift_face.gif | Bin 0 -> 253144 bytes .../py_meanshift/images/camshift_result.jpg | Bin 0 -> 34939 bytes .../py_meanshift/images/meanshift_basics.jpg | Bin 0 -> 17815 bytes .../py_meanshift/images/meanshift_face.gif | Bin 0 -> 180533 bytes .../py_meanshift/images/meanshift_result.jpg | Bin 0 -> 27846 bytes .../py_video/py_meanshift/py_meanshift.rst | 184 ++++++++++++ .../images/background.jpg | Bin 0 -> 4343 bytes .../images/camshift.jpg | Bin 0 -> 5566 bytes .../images/lucas.jpg | Bin 0 -> 5761 bytes .../images/opticalflow.jpeg | Bin 0 -> 6488 bytes .../py_table_of_contents_video.rst | 60 ++++ index.rst | 1 + 329 files changed, 9660 insertions(+) create mode 100644 doc/py_tutorials/images/MachineLearnings.jpg create mode 100644 doc/py_tutorials/images/calib3d_icon.jpg create mode 100644 doc/py_tutorials/images/core.jpg create mode 100644 doc/py_tutorials/images/featureicon.jpg create mode 100644 doc/py_tutorials/images/gui.jpg create mode 100644 doc/py_tutorials/images/imgproc.jpg create mode 100644 doc/py_tutorials/images/intro.png create mode 100644 doc/py_tutorials/images/obj_icon.jpg create mode 100644 doc/py_tutorials/images/photoicon.jpg create mode 100644 doc/py_tutorials/images/videoicon.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_calibration/images/calib_pattern.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_calibration/images/calib_radial.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_calibration/images/calib_result.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_calibration/py_calibration.rst create mode 100644 doc/py_tutorials/py_calib3d/py_depthmap/images/disparity_map.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_depthmap/images/stereo_depth.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_depthmap/py_depthmap.rst create mode 100644 doc/py_tutorials/py_calib3d/py_epipolar_geometry/images/epipolar.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_epipolar_geometry/images/epiresult.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_epipolar_geometry/images/essential_matrix.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_epipolar_geometry/py_epipolar_geometry.rst create mode 100644 doc/py_tutorials/py_calib3d/py_pose/images/pose_1.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_pose/images/pose_2.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_pose/py_pose.rst create mode 100644 doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/calibration_icon.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/depthmap_icon.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/epipolar_icon.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/pose_icon.jpg create mode 100644 doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/py_table_of_contents_calib3d.rst create mode 100644 doc/py_tutorials/py_core/py_basic_ops/images/border.jpg create mode 100644 doc/py_tutorials/py_core/py_basic_ops/images/roi.jpg create mode 100644 doc/py_tutorials/py_core/py_basic_ops/py_basic_ops.rst create mode 100644 doc/py_tutorials/py_core/py_image_arithmetics/images/blending.jpg create mode 100644 doc/py_tutorials/py_core/py_image_arithmetics/images/overlay.jpg create mode 100644 doc/py_tutorials/py_core/py_image_arithmetics/py_image_arithmetics.rst create mode 100644 doc/py_tutorials/py_core/py_maths_tools/py_maths_tools.rst create mode 100644 doc/py_tutorials/py_core/py_optimization/py_optimization.rst create mode 100644 doc/py_tutorials/py_core/py_table_of_contents_core/images/image_arithmetic.jpg create mode 100644 doc/py_tutorials/py_core/py_table_of_contents_core/images/maths_tools.jpg create mode 100644 doc/py_tutorials/py_core/py_table_of_contents_core/images/pixel_ops.jpg create mode 100644 doc/py_tutorials/py_core/py_table_of_contents_core/images/speed.jpg create mode 100644 doc/py_tutorials/py_core/py_table_of_contents_core/py_table_of_contents_core.rst create mode 100644 doc/py_tutorials/py_feature2d/py_brief/py_brief.rst create mode 100644 doc/py_tutorials/py_feature2d/py_fast/images/fast_eqns.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_fast/images/fast_kp.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_fast/images/fast_speedtest.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_fast/py_fast.rst create mode 100644 doc/py_tutorials/py_feature2d/py_feature_homography/images/homography_findobj.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_feature_homography/py_feature_homography.rst create mode 100644 doc/py_tutorials/py_feature2d/py_features_harris/images/harris_region.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_features_harris/images/harris_result.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_features_harris/images/subpixel3.png create mode 100644 doc/py_tutorials/py_feature2d/py_features_harris/py_features_harris.rst create mode 100644 doc/py_tutorials/py_feature2d/py_features_meaning/images/feature_building.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_features_meaning/images/feature_simple.png create mode 100644 doc/py_tutorials/py_feature2d/py_features_meaning/py_features_meaning.rst create mode 100644 doc/py_tutorials/py_feature2d/py_matcher/images/matcher_flann.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_matcher/images/matcher_result1.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_matcher/images/matcher_result2.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_matcher/py_matcher.rst create mode 100644 doc/py_tutorials/py_feature2d/py_orb/images/orb_kp.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_orb/py_orb.rst create mode 100644 doc/py_tutorials/py_feature2d/py_shi_tomasi/images/shitomasi_block1.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_shi_tomasi/images/shitomasi_space.png create mode 100644 doc/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.rst create mode 100644 doc/py_tutorials/py_feature2d/py_sift_intro/images/sift_dog.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_sift_intro/images/sift_keypoints.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_sift_intro/images/sift_local_extrema.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_sift_intro/images/sift_scale_invariant.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.rst create mode 100644 doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_boxfilter.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_kp1.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_kp2.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_matching.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_orientation.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_surf_intro/py_surf_intro.rst create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/brief.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/fast_icon.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/features_icon.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/harris_icon.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/homography_icon.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/matching.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/orb.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/shi_icon.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/sift_icon.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/surf_icon.jpg create mode 100644 doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/py_table_of_contents_feature2d.rst create mode 100644 doc/py_tutorials/py_gui/py_drawing_functions/images/drawing.jpg create mode 100644 doc/py_tutorials/py_gui/py_drawing_functions/py_drawing_functions.rst create mode 100644 doc/py_tutorials/py_gui/py_image_display/images/matplotlib_screenshot.jpg create mode 100644 doc/py_tutorials/py_gui/py_image_display/images/opencv_screenshot.jpg create mode 100644 doc/py_tutorials/py_gui/py_image_display/py_image_display.rst create mode 100644 doc/py_tutorials/py_gui/py_mouse_handling/py_mouse_handling.rst create mode 100644 doc/py_tutorials/py_gui/py_table_of_contents_gui/images/drawing.jpg create mode 100644 doc/py_tutorials/py_gui/py_table_of_contents_gui/images/image_display.jpg create mode 100644 doc/py_tutorials/py_gui/py_table_of_contents_gui/images/mouse_drawing.jpg create mode 100644 doc/py_tutorials/py_gui/py_table_of_contents_gui/images/trackbar.jpg create mode 100644 doc/py_tutorials/py_gui/py_table_of_contents_gui/images/video_display.jpg create mode 100644 doc/py_tutorials/py_gui/py_table_of_contents_gui/py_table_of_contents_gui.rst create mode 100644 doc/py_tutorials/py_gui/py_trackbar/images/trackbar_screenshot.jpg create mode 100644 doc/py_tutorials/py_gui/py_trackbar/py_trackbar.rst create mode 100644 doc/py_tutorials/py_gui/py_video_display/py_video_display.rst create mode 100644 doc/py_tutorials/py_imgproc/py_canny/images/canny1.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_canny/images/hysteresis.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_canny/images/nms.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_canny/py_canny.rst create mode 100644 doc/py_tutorials/py_imgproc/py_colorspaces/images/frame.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.rst create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/approx.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/boundingrect.png create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/circumcircle.png create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/convexitydefects.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/fitellipse.png create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/fitline.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contour_features/py_contour_features.rst create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contour_properties/images/extremepoints.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contour_properties/py_contour_properties.rst create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contours_begin/images/none.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.rst create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/images/ccomp_hierarchy.png create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/images/hierarchy.png create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/images/tree_hierarchy.png create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/py_contours_hierarchy.rst create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/images/defects.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/images/matchshapes.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/py_contours_more_functions.rst create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_defects.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_features.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_hierarchy.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_properties.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_starting.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/py_table_of_contents_contours.rst create mode 100644 doc/py_tutorials/py_imgproc/py_filtering/images/bilateral.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_filtering/images/blur.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_filtering/images/filter.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_filtering/images/gaussian.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_filtering/images/median.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_filtering/py_filtering.rst create mode 100644 doc/py_tutorials/py_imgproc/py_geometric_transformations/images/affine.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_geometric_transformations/images/perspective.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_geometric_transformations/images/rotation.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_geometric_transformations/images/translation.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_geometric_transformations/py_geometric_transformations.rst create mode 100644 doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut_mask.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut_output1.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut_rect.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_grabcut/py_grabcut.rst create mode 100644 doc/py_tutorials/py_imgproc/py_gradients/images/double_edge.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_gradients/images/gradients.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_gradients/py_gradients.rst create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_2d_histogram/images/2dhist_matplotlib.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_2d_histogram/images/2dhist_opencv.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_2d_histogram/py_2d_histogram.rst create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_backprojection/images/backproject_opencv.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_backprojection/py_histogram_backprojection.rst create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_masking.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_matplotlib.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_rgb_plot.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_sample.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/py_histogram_begins.rst create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/clahe_1.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/clahe_2.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/equalization_opencv.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/histeq_numpy1.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/histeq_numpy2.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/histogram_equalization.png create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/py_histogram_equalization.rst create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_1d.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_2d.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_bp.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_equ.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/py_table_of_contents_histograms.rst create mode 100644 doc/py_tutorials/py_imgproc/py_houghcircles/images/houghcircles2.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.rst create mode 100644 doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines1.svg create mode 100644 doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines2.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines3.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines4.png create mode 100644 doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines5.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_houghlines/images/houghlinesdemo.gif create mode 100644 doc/py_tutorials/py_imgproc/py_houghlines/py_houghlines.rst create mode 100644 doc/py_tutorials/py_imgproc/py_morphological_ops/images/blackhat.png create mode 100644 doc/py_tutorials/py_imgproc/py_morphological_ops/images/closing.png create mode 100644 doc/py_tutorials/py_imgproc/py_morphological_ops/images/dilation.png create mode 100644 doc/py_tutorials/py_imgproc/py_morphological_ops/images/erosion.png create mode 100644 doc/py_tutorials/py_imgproc/py_morphological_ops/images/gradient.png create mode 100644 doc/py_tutorials/py_imgproc/py_morphological_ops/images/j.png create mode 100644 doc/py_tutorials/py_imgproc/py_morphological_ops/images/opening.png create mode 100644 doc/py_tutorials/py_imgproc/py_morphological_ops/images/tophat.png create mode 100644 doc/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.rst create mode 100644 doc/py_tutorials/py_imgproc/py_pyramids/images/lap.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_pyramids/images/messipyr.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_pyramids/images/messiup.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_pyramids/images/orapple.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_pyramids/py_pyramids.rst create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/blurring.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/canny.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/colorspace.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/contours.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/geometric.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/grabcut.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/gradient.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/histogram.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/houghcircles.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/houghlines.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/morphology.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/pyramid.png create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/template.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/thresh.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/transforms.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/watershed.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/py_table_of_contents_imgproc.rst create mode 100644 doc/py_tutorials/py_imgproc/py_template_matching/images/messi_face.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_template_matching/images/res_mario.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccoeff_1.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccoeffn_2.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccorr_3.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccorrn_4.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_template_matching/images/template_sqdiff_5.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_template_matching/images/template_sqdiffn_6.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_template_matching/py_template_matching.rst create mode 100644 doc/py_tutorials/py_imgproc/py_thresholding/images/ada_threshold.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_thresholding/images/otsu.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_thresholding/images/threshold.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.rst create mode 100644 doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/images/fft1.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/images/fft2.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/images/fft4.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/images/fft5.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/py_fourier_transform.rst create mode 100644 doc/py_tutorials/py_imgproc/py_transforms/py_table_of_contents_transforms/images/transform_fourier.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_transforms/py_table_of_contents_transforms/py_table_of_contents_transforms.rst create mode 100644 doc/py_tutorials/py_imgproc/py_watershed/images/water_coins.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_watershed/images/water_dt.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_watershed/images/water_fgbg.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_watershed/images/water_marker.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_watershed/images/water_result.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_watershed/images/water_thresh.jpg create mode 100644 doc/py_tutorials/py_imgproc/py_watershed/py_watershed.rst create mode 100644 doc/py_tutorials/py_ml/py_kmeans/images/kmeans_begin.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/images/kmeans_demo.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_index.rst create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_1d_clustered.png create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_1d_testdata.png create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_2d_clustered.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_color_quantization.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_feature_representation.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/py_kmeans_opencv.rst create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/images/final_clusters.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/images/initial_labelling.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/images/testdata.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/images/tshirt.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/images/tshirt_grouped.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/images/update_centroid.jpg create mode 100644 doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/py_kmeans_understanding.rst create mode 100644 doc/py_tutorials/py_ml/py_knn/images/knn_icon1.jpg create mode 100644 doc/py_tutorials/py_ml/py_knn/images/knn_icon2.jpg create mode 100644 doc/py_tutorials/py_ml/py_knn/py_knn_index.rst create mode 100644 doc/py_tutorials/py_ml/py_knn/py_knn_opencv/py_knn_opencv.rst create mode 100644 doc/py_tutorials/py_ml/py_knn/py_knn_understanding/images/knn_simple.png create mode 100644 doc/py_tutorials/py_ml/py_knn/py_knn_understanding/images/knn_theory.png create mode 100644 doc/py_tutorials/py_ml/py_knn/py_knn_understanding/py_knn_understanding.rst create mode 100644 doc/py_tutorials/py_ml/py_svm/images/svm_icon1.jpg create mode 100644 doc/py_tutorials/py_ml/py_svm/images/svm_icon2.jpg create mode 100644 doc/py_tutorials/py_ml/py_svm/py_svm_basics/images/svm_basics1.png create mode 100644 doc/py_tutorials/py_ml/py_svm/py_svm_basics/images/svm_basics2.png create mode 100644 doc/py_tutorials/py_ml/py_svm/py_svm_basics/images/svm_basics3.png create mode 100644 doc/py_tutorials/py_ml/py_svm/py_svm_basics/py_svm_basics.rst create mode 100644 doc/py_tutorials/py_ml/py_svm/py_svm_index.rst create mode 100644 doc/py_tutorials/py_ml/py_svm/py_svm_opencv/images/deskew.jpg create mode 100644 doc/py_tutorials/py_ml/py_svm/py_svm_opencv/py_svm_opencv.rst create mode 100644 doc/py_tutorials/py_ml/py_table_of_contents_ml/images/kmeansicon.jpg create mode 100644 doc/py_tutorials/py_ml/py_table_of_contents_ml/images/knnicon.png create mode 100644 doc/py_tutorials/py_ml/py_table_of_contents_ml/images/svmicon.png create mode 100644 doc/py_tutorials/py_ml/py_table_of_contents_ml/py_table_of_contents_ml.rst create mode 100644 doc/py_tutorials/py_objdetect/py_face_detection/images/face.jpg create mode 100644 doc/py_tutorials/py_objdetect/py_face_detection/images/haar.png create mode 100644 doc/py_tutorials/py_objdetect/py_face_detection/images/haar_features.jpg create mode 100644 doc/py_tutorials/py_objdetect/py_face_detection/py_face_detection.rst create mode 100644 doc/py_tutorials/py_objdetect/py_table_of_contents_objdetect/images/face_icon.jpg create mode 100644 doc/py_tutorials/py_objdetect/py_table_of_contents_objdetect/py_table_of_contents_objdetect.rst create mode 100644 doc/py_tutorials/py_photo/py_inpainting/images/inpaint_basics.jpg create mode 100644 doc/py_tutorials/py_photo/py_inpainting/images/inpaint_result.jpg create mode 100644 doc/py_tutorials/py_photo/py_inpainting/py_inpainting.rst create mode 100644 doc/py_tutorials/py_photo/py_non_local_means/images/nlm_multi.jpg create mode 100644 doc/py_tutorials/py_photo/py_non_local_means/images/nlm_patch.jpg create mode 100644 doc/py_tutorials/py_photo/py_non_local_means/images/nlm_result1.jpg create mode 100644 doc/py_tutorials/py_photo/py_non_local_means/py_non_local_means.rst create mode 100644 doc/py_tutorials/py_photo/py_table_of_contents_photo/images/inpainticon.jpg create mode 100644 doc/py_tutorials/py_photo/py_table_of_contents_photo/images/nlm_icon.jpg create mode 100644 doc/py_tutorials/py_photo/py_table_of_contents_photo/py_table_of_contents_photo.rst create mode 100644 doc/py_tutorials/py_setup/py_intro/py_intro.rst create mode 100644 doc/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.rst create mode 100644 doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture1.jpg create mode 100644 doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture2.png create mode 100644 doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture3.png create mode 100644 doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture5.png create mode 100644 doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture6.png create mode 100644 doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture7.png create mode 100644 doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture8.png create mode 100644 doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture80.png create mode 100644 doc/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.rst create mode 100644 doc/py_tutorials/py_setup/py_table_of_contents_setup/images/fedora_logo.jpg create mode 100644 doc/py_tutorials/py_setup/py_table_of_contents_setup/images/opencv_logo.jpg create mode 100644 doc/py_tutorials/py_setup/py_table_of_contents_setup/images/windows_logo.jpg create mode 100644 doc/py_tutorials/py_setup/py_table_of_contents_setup/py_table_of_contents_setup.rst create mode 100644 doc/py_tutorials/py_tutorials.rst create mode 100644 doc/py_tutorials/py_video/py_bg_subtraction/images/resframe.jpg create mode 100644 doc/py_tutorials/py_video/py_bg_subtraction/images/resgmg.jpg create mode 100644 doc/py_tutorials/py_video/py_bg_subtraction/images/resmog.jpg create mode 100644 doc/py_tutorials/py_video/py_bg_subtraction/images/resmog2.jpg create mode 100644 doc/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.rst create mode 100644 doc/py_tutorials/py_video/py_lucas_kanade/images/optical_flow_basic1.jpg create mode 100644 doc/py_tutorials/py_video/py_lucas_kanade/images/opticalfb.jpg create mode 100644 doc/py_tutorials/py_video/py_lucas_kanade/images/opticalflow_lk.jpg create mode 100644 doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.rst create mode 100644 doc/py_tutorials/py_video/py_meanshift/images/camshift_face.gif create mode 100644 doc/py_tutorials/py_video/py_meanshift/images/camshift_result.jpg create mode 100644 doc/py_tutorials/py_video/py_meanshift/images/meanshift_basics.jpg create mode 100644 doc/py_tutorials/py_video/py_meanshift/images/meanshift_face.gif create mode 100644 doc/py_tutorials/py_video/py_meanshift/images/meanshift_result.jpg create mode 100644 doc/py_tutorials/py_video/py_meanshift/py_meanshift.rst create mode 100644 doc/py_tutorials/py_video/py_table_of_contents_video/images/background.jpg create mode 100644 doc/py_tutorials/py_video/py_table_of_contents_video/images/camshift.jpg create mode 100644 doc/py_tutorials/py_video/py_table_of_contents_video/images/lucas.jpg create mode 100644 doc/py_tutorials/py_video/py_table_of_contents_video/images/opticalflow.jpeg create mode 100644 doc/py_tutorials/py_video/py_table_of_contents_video/py_table_of_contents_video.rst diff --git a/doc/py_tutorials/images/MachineLearnings.jpg b/doc/py_tutorials/images/MachineLearnings.jpg new file mode 100644 index 0000000000000000000000000000000000000000..22311de6bcc9c70c72ad570beca5e666e3059c48 GIT binary patch literal 3227 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/images/core.jpg b/doc/py_tutorials/images/core.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a29ca44efb2259e0e159fa9058a6d6b3b8c6dd2 GIT binary patch literal 4163 zcmbW3cTm$^v&Vm-g^oxkfzUyEq>3~f5s@MaJb(~s(nO?3KmqB+0z81AQlyDW@4XX5 zAwnQvC;|bLo=6K2lb7dx@7z1%U-#ZUbI#0}v$OmC?3vkF+7xXbICag)*a!fD004Bd z0NONg31DVq0y8l(gPFiA%*-t8JnZajZ0v&Er#X3`f+8XiL5MI+Qc)TvE-x+&kx`eG zS5|?ag^NmS>S(I!D5}C${|N$OW?^AxWfx#)7f=<0h^hXcjn)NlGXr*j9X&__pyLM7 zbAxDo0PI93Bk11-{Fi~~=owA~GqbR=ojBB=0_Z^W^mGjLjEoEnC*F@v-T?+~#?#{P z3rsvWoWK%(yl10Q3z#J@R(JDRjuNHRoc*7$u<{EC3JFWg$jY6OSJ%+g(mtni>GBmL z#8u;KH*Z;4+x%r~=i=&i*WJU@DFMq3A3zU&8XCinPv9n}zTp=Z2}{c>KYp&Rk$&y$?(H9t50C!g z0s-{@!8$qr1NH|O_X!sr0|Pw+_#ZA1UC7C%=Vo9OhclhNa0Be*$0KnzikbIfYC&~3 zi=>(*k}=4pm$vJ1}Aw)!UJo)3kI=;?Tu-3h|cy5%PaWc zS~s)vuEJZo2p>QCPl5Z`Isqz}UvnFJebJbFUf<%u1B4y$wUY?zQGk@oeA_)NO1D9c zO%64^iB1H`_ic57`F`Z_g!AS9L<$6ofUnnj1WsdW4o8LFB>QG(bU6E;1)#!v&rf+a ze*Fn!-^|4!buc%o1(@I44^6Xhw2Av3c(4Unb*J>T~UG@w|?5R&zngM7vFgK_ES zqB)rSs$y}I?TRW|js3lv?>v?FHd$+duc6{7JjZn5*A}kFBuaOH_f6box5hn+d_{W+ z@(t1s8=LW|rHy1&zRN7(EDD@^G&LQy!8Dp+v}^`2OH1! z%tyWE`tlW=ii+r_iZ+oK%E+PAaT?%^Zy%A^dF^w{67hv|3%>5KpE!?+2_0Sv#^J9l z-9?G6%&z1H*(bbM$mXOP_WK`6nHy~KEXp}s{<^9%aVtbd2Cy+F;>SoDG=OcoXZqi-5|N+00-JI3bA3ZTun^|vg@9+#8ox4tFs)wXQ`}!DuM+}fN{Lf7;n?=u;YaW(jB`2(nGv$E9X~4zlN9hkoHSej6W`_~_+c--} zxY}9}Z3*hGR3U=w_p3are59(roCp3{G_kW+Q@Fpnp~d0i9$q)PSM$PrZvJHcx+oM^;cWlgz%=uS z!=(FjF=FZLvWysa8(i?VXrUe#-!hDs;zWS);QvA_{uVgal#>dM>Od<(rlL}_Wc9$; z*3~PMV7!}wttMdxEQbxmp47e*O(7i3bdjavRVcJN2v2_1eY4^@gULdf?_TUz9`iWr z+!9}$D*&oans-fuy6!DDMI=_uPE*{7x;iPjK1)-(14_T))oe?pkpKQlQ~7- zSDT|1p{@g6Hh#pNo|etb&V~3+tZRMpC9G_1uB}k;;KtH(6^1l8M$9JBgDOX|D(!16 z4@DdA1RXkBr(rf~G{<^5j;li0xgINY(ty}%k}oxui&8X014y?(Yq_A&?TvX7XW7ST zje2TXm|{7%SnN}yar_0{Q)(%b1NB>J;nw7u(VE5>)uL18`=%K4A9a7nmh3Y>Y;Kwf3Mh1(nNhT1cz;b8VaWzur92H34(W9;F~PR! z>^C-~dkJgo^{*pjmXj`N`WHk>xl~VM>Vb!)1H+FG`o439pLy?Py~^0vC;)6QC`R4^ zTZA&vYkykDwQgP-$Qj9S^DX&F16*SRzq83yZR;8#wcp2bM+yb+>h4SyKQMr_X{f|> zh>~5dH8q(eW^S$7ihx*!h<)t83`f))6GP^G%x$roK}zzAUqukTEQLc^il3L`EPAfU za}qwy6V?q`Dk)cS2uumW-Sq`IC}>iE*=;8~p-=vjG9073x9a$abe6K#DWuEs?j@!0 zp-;)k&2!To&QqB1yX`jpq736fFwSWY>&~fz;HuTUJI0lFBs`$YVNfAG;g(BQykddA3kcV5s&<)WUmO5%QpNYj&H_2Xor`>CVZ%RV20 z5kt1gdV_>1aR0VW@_2fGv^vd@kgYpB1*HL;*u9FDo!%@p%H=AO z@bIaIdhBwY$4E$~I|KIsygxvI25bcvEx0$+^b-P3HR%6|)hF@+iYxys^?wmAX zn{<>4)hynM22@N&9DyobiKX$%fes;kSv$kLscQ$xey2>nt0I#!b@C|bMexnoz}yOn5!JlKGz5B1{j#45@?Ecbvw(Zs&XAHHEZ$7;c326x=@Zmfi1;`W1S)S5y zt{OtM{-l`Kbtxv}vFK2@yo9Z#EM(TFW2y27 z&qB#0~v)Y2v7)tN!XLP4}%s7+e9aZ~0t zfh$V+zVtKCl6tIE+Epr{`eoW@>=UyqfFlivF(>5xW>PjFI_D7(e@fV0-PSPiO=%Dg z&nepRJkW7Hpc{{TmjVT0EA-4YM#689N~&_@v2_@(nU{)+du&&OSP0rGQqTNOIStT7 zH$8Zm&&4;o+bKLuQeNvdYfaU)sFcfbdccub#^i3%hy5T*%s+3VNu94U%}%M zEb7Sy+!V%!QI-4GxgA*u!A79*hZ`u&SgXM)vK_|u5x><$ac$NWXQKLJdnW0N%NbGN zC?xNwAP(9vCgh&8 zl#$dF1@}e`QU)(*ADu+e;!5ZnZD@b!?i+9q*T_%0`V^XguD~%U1VQ3BIZ&njVPW2| zr*oWjwPN;m{iVII;n(sbU9P_wQ6~Wo_y!W443al>jV5DmUBAh)%w(urBj7uPkW3;!Ndk^_&^^JKIyLKBIkULZAa76U^48mf WF#{>a=fvpHvo+oX;ghJeZ~p?_$MEI= literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/images/featureicon.jpg b/doc/py_tutorials/images/featureicon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ef76c3fec7585c0723a652fdc5f7a1250566d4b5 GIT binary patch literal 5127 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 DW*CO0 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/images/gui.jpg b/doc/py_tutorials/images/gui.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3d588b1617847b0fda250b61b01fed2771ee3930 GIT binary patch literal 3323 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/images/imgproc.jpg b/doc/py_tutorials/images/imgproc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac221dadfe9ea2f65162da284e27fb933e105f06 GIT binary patch literal 2712 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 Vg#QkHoi_jg002ovPDHLkV1ldDB*y>% literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/images/obj_icon.jpg b/doc/py_tutorials/images/obj_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e8228f5883a80c031c68f9353305f9d57cfa157 GIT binary patch literal 2925 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/images/photoicon.jpg b/doc/py_tutorials/images/photoicon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3dccf23cd662a65fc170f3f85fe17356ccbba2ef GIT binary patch literal 5058 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

YW=!O8lyCiDh4WAyaIMFqb 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%0AZO>|T?4C||(G5^xMY~9QY`nYpyhd%JvifH~ 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_calibration/py_calibration.rst b/doc/py_tutorials/py_calib3d/py_calibration/py_calibration.rst new file mode 100644 index 000000000..abf041177 --- /dev/null +++ b/doc/py_tutorials/py_calib3d/py_calibration/py_calibration.rst @@ -0,0 +1,213 @@ +.. _calibration: + + +Camera Calibration +******************** + +Goal +======= + +In this section, + * We will learn about distortions in camera, intrinsic and extrinsic parameters of camera etc. + * We will learn to find these parameters, undistort images etc. + + +Basics +======== + +Today's cheap pinhole cameras introduces a lot of distortion to images. Two major distortions are radial distortion and tangential distortion. + +Due to radial distortion, straight lines will appear curved. Its effect is more as we move away from the center of image. For example, one image is shown below, where two edges of a chess board are marked with red lines. But you can see that border is not a straight line and doesn't match with the red line. All the expected straight lines are bulged out. Visit `Distortion (optics) `_ for more details. + + .. image:: images/calib_radial.jpg + :alt: Radial Distortion + :align: center + +This distortion is solved as follows: + +.. math:: + + x_{corrected} = x( 1 + k_1 r^2 + k_2 r^4 + k_3 r^6) \\ + y_{corrected} = y( 1 + k_1 r^2 + k_2 r^4 + k_3 r^6) + + +Similarly, another distortion is the tangential distortion which occurs because image taking lense is not aligned perfectly parallel to the imaging plane. So some areas in image may look nearer than expected. It is solved as below: + + +.. math:: + + x_{corrected} = x + [ 2p_1xy + p_2(r^2+2x^2)] \\ + y_{corrected} = y + [ p_1(r^2+ 2y^2)+ 2p_2xy] + + +In short, we need to find five parameters, known as distortion coefficients given by: + +.. math:: + + Distortion \; coefficients=(k_1 \hspace{10pt} k_2 \hspace{10pt} p_1 \hspace{10pt} p_2 \hspace{10pt} k_3) + + +In addition to this, we need to find a few more information, like intrinsic and extrinsic parameters of a camera. Intrinsic parameters are specific to a camera. It includes information like focal length (:math:`f_x,f_y`), optical centers (:math:`c_x, c_y`) etc. It is also called camera matrix. It depends on the camera only, so once calculated, it can be stored for future purposes. It is expressed as a 3x3 matrix: + +.. math:: + + camera \; matrix = \left [ \begin{matrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{matrix} \right ] + + +Extrinsic parameters corresponds to rotation and translation vectors which translates a coordinates of a 3D point to a coordinate system. + + +For stereo applications, these distortions need to be corrected first. To find all these parameters, what we have to do is to provide some sample images of a well defined pattern (eg, chess board). We find some specific points in it ( square corners in chess board). We know its coordinates in real world space and we know its coordinates in image. With these data, some mathematical problem is solved in background to get the distortion coefficients. That is the summary of the whole story. For better results, we need atleast 10 test patterns. + + +Code +======== + +As mentioned above, we need atleast 10 test patterns for camera calibration. OpenCV comes with some images of chess board (see ``samples/cpp/left01.jpg -- left14.jpg``), so we will utilize it. For sake of understanding, consider just one image of a chess board. Important input datas needed for camera calibration is a set of 3D real world points and its corresponding 2D image points. 2D image points are OK which we can easily find from the image. (These image points are locations where two black squares touch each other in chess boards) + +What about the 3D points from real world space? Those images are taken from a static camera and chess boards are placed at different locations and orientations. So we need to know :math:`(X,Y,Z)` values. But for simplicity, we can say chess board was kept stationary at XY plane, (so Z=0 always) and camera was moved accordingly. This consideration helps us to find only X,Y values. Now for X,Y values, we can simply pass the points as (0,0), (1,0), (2,0), ... which denotes the location of points. In this case, the results we get will be in the scale of size of chess board square. But if we know the square size, (say 30 mm), and we can pass the values as (0,0),(30,0),(60,0),..., we get the results in mm. (In this case, we don't know square size since we didn't take those images, so we pass in terms of square size). + +3D points are called **object points** and 2D image points are called **image points.** + +Setup +--------- + +So to find pattern in chess board, we use the function, **cv2.findChessboardCorners()**. We also need to pass what kind of pattern we are looking, like 8x8 grid, 5x5 grid etc. In this example, we use 7x6 grid. (Normally a chess board has 8x8 squares and 7x7 internal corners). It returns the corner points and retval which will be True if pattern is obtained. These corners will be placed in an order (from left-to-right, top-to-bottom) + +.. seealso:: This function may not be able to find the required pattern in all the images. So one good option is to write the code such that, it starts the camera and check each frame for required pattern. Once pattern is obtained, find the corners and store it in a list. Also provides some interval before reading next frame so that we can adjust our chess board in different direction. Continue this process until required number of good patterns are obtained. Even in the example provided here, we are not sure out of 14 images given, how many are good. So we read all the images and take the good ones. + +.. seealso:: Instead of chess board, we can use some circular grid, but then use the function **cv2.findCirclesGrid()** to find the pattern. It is said that less number of images are enough when using circular grid. + +Once we find the corners, we can increase their accuracy using **cv2.cornerSubPix()**. We can also draw the pattern using **cv2.drawChessboardCorners()**. All these steps are included in below code: + +:: + + import numpy as np + import cv2 + import glob + + # termination criteria + criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) + + # prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0) + objp = np.zeros((6*7,3), np.float32) + objp[:,:2] = np.mgrid[0:7,0:6].T.reshape(-1,2) + + # Arrays to store object points and image points from all the images. + objpoints = [] # 3d point in real world space + imgpoints = [] # 2d points in image plane. + + images = glob.glob('*.jpg') + + for fname in images: + img = cv2.imread(fname) + gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + + # Find the chess board corners + ret, corners = cv2.findChessboardCorners(gray, (7,6),None) + + # If found, add object points, image points (after refining them) + if ret == True: + objpoints.append(objp) + + corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria) + imgpoints.append(corners2) + + # Draw and display the corners + img = cv2.drawChessboardCorners(img, (7,6), corners2,ret) + cv2.imshow('img',img) + cv2.waitKey(500) + + cv2.destroyAllWindows() + +One image with pattern drawn on it is shown below: + + .. image:: images/calib_pattern.jpg + :alt: Calibration Pattern + :align: center + + +Calibration +------------ + +So now we have our object points and image points we are ready to go for calibration. For that we use the function, **cv2.calibrateCamera()**. It returns the camera matrix, distortion coefficients, rotation and translation vectors etc. +:: + + ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None,None) + + +Undistortion +--------------- + +We have got what we were trying. Now we can take an image and undistort it. OpenCV comes with two methods, we will see both. But before that, we can refine the camera matrix based on a free scaling parameter using **cv2.getOptimalNewCameraMatrix()**. If the scaling parameter ``alpha=0``, it returns undistorted image with minimum unwanted pixels. So it may even remove some pixels at image corners. If ``alpha=1``, all pixels are retained with some extra black images. It also returns an image ROI which can be used to crop the result. + +So we take a new image (``left12.jpg`` in this case. That is the first image in this chapter) +:: + + img = cv2.imread('left12.jpg') + h, w = img.shape[:2] + newcameramtx, roi=cv2.getOptimalNewCameraMatrix(mtx,dist,(w,h),1,(w,h)) + +1. Using **cv2.undistort()** +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This is the shortest path. Just call the function and use ROI obtained above to crop the result. +:: + + # undistort + dst = cv2.undistort(img, mtx, dist, None, newcameramtx) + + # crop the image + x,y,w,h = roi + dst = dst[y:y+h, x:x+w] + cv2.imwrite('calibresult.png',dst) + + +2. Using **remapping** +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This is curved path. First find a mapping function from distorted image to undistorted image. Then use the remap function. +:: + + # undistort + mapx,mapy = cv2.initUndistortRectifyMap(mtx,dist,None,newcameramtx,(w,h),5) + dst = cv2.remap(img,mapx,mapy,cv2.INTER_LINEAR) + + # crop the image + x,y,w,h = roi + dst = dst[y:y+h, x:x+w] + cv2.imwrite('calibresult.png',dst) + +Both the methods give the same result. See the result below: + + .. image:: images/calib_result.jpg + :alt: Calibration Result + :align: center + +You can see in the result that all the edges are straight. + +Now you can store the camera matrix and distortion coefficients using write functions in Numpy (np.savez, np.savetxt etc) for future uses. + +Re-projection Error +======================= +Re-projection error gives a good estimation of just how exact is the found parameters. This should be as close to zero as possible. Given the intrinsic, distortion, rotation and translation matrices, we first transform the object point to image point using **cv2.projectPoints()**. Then we calculate the absolute norm between what we got with our transformation and the corner finding algorithm. To find the average error we calculate the arithmetical mean of the errors calculate for all the calibration images. +:: + + mean_error = 0 + for i in xrange(len(objpoints)): + imgpoints2, _ = cv2.projectPoints(objpoints[i], rvecs[i], tvecs[i], mtx, dist) + error = cv2.norm(imgpoints[i],imgpoints2, cv2.NORM_L2)/len(imgpoints2) + tot_error += error + + print "total error: ", mean_error/len(objpoints) + + +Additional Resources +====================== + + + +Exercises +============ + +#. Try camera calibration with circular grid. diff --git a/doc/py_tutorials/py_calib3d/py_depthmap/images/disparity_map.jpg b/doc/py_tutorials/py_calib3d/py_depthmap/images/disparity_map.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6a7d13b1ad95d06e829c25e52f8d237f1bceb9de GIT binary patch literal 18979 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_depthmap/images/stereo_depth.jpg b/doc/py_tutorials/py_calib3d/py_depthmap/images/stereo_depth.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5d22ed953312cdfe2e91d711b6d673b559082b41 GIT binary patch literal 13451 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_depthmap/py_depthmap.rst b/doc/py_tutorials/py_calib3d/py_depthmap/py_depthmap.rst new file mode 100644 index 000000000..24fc28a46 --- /dev/null +++ b/doc/py_tutorials/py_calib3d/py_depthmap/py_depthmap.rst @@ -0,0 +1,67 @@ +.. _py_depthmap: + + +Depth Map from Stereo Images +****************************** + +Goal +======= + +In this session, + * We will learn to create depth map from stereo images. + + +Basics +=========== +In last session, we saw basic concepts like epipolar constraints and other related terms. We also saw that if we have two images of same scene, we can get depth information from that in an intuitive way. Below is an image and some simple mathematical formulas which proves that intuition. (Image Courtesy : + + .. image:: images/stereo_depth.jpg + :alt: Calculating depth + :align: center + +The above diagram contains equivalent triangles. Writing their equivalent equations will yield us following result: + +.. math:: + + disparity = x - x' = \frac{Bf}{Z} + +:math:`x` and :math:`x'` are the distance between points in image plane corresponding to the scene point 3D and their camera center. :math:`B` is the distance between two cameras (which we know) and :math:`f` is the focal length of camera (already known). So in short, above equation says that the depth of a point in a scene is inversely proportional to the difference in distance of corresponding image points and their camera centers. So with this information, we can derive the depth of all pixels in an image. + +So it finds corresponding matches between two images. We have already seen how epiline constraint make this operation faster and accurate. Once it finds matches, it finds the disparity. Let's see how we can do it with OpenCV. + + +Code +======== + +Below code snippet shows a simple procedure to create disparity map. +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + imgL = cv2.imread('tsukuba_l.png',0) + imgR = cv2.imread('tsukuba_r.png',0) + + stereo = cv2.createStereoBM(numDisparities=16, blockSize=15) + disparity = stereo.compute(imgL,imgR) + plt.imshow(disparity,'gray') + plt.show() + +Below image contains the original image (left) and its disparity map (right). As you can see, result is contaminated with high degree of noise. By adjusting the values of numDisparities and blockSize, you can get more better result. + + .. image:: images/disparity_map.jpg + :alt: Disparity Map + :align: center + +.. note:: More details to be added + + +Additional Resources +============================= + + +Exercises +============ + +1. OpenCV samples contain an example of generating disparity map and its 3D reconstruction. Check ``stereo_match.py`` in OpenCV-Python samples. diff --git a/doc/py_tutorials/py_calib3d/py_epipolar_geometry/images/epipolar.jpg b/doc/py_tutorials/py_calib3d/py_epipolar_geometry/images/epipolar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..93071a0033ddef30710ed8cc8977e1ed05d53119 GIT binary patch literal 10934 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_epipolar_geometry/images/epiresult.jpg b/doc/py_tutorials/py_calib3d/py_epipolar_geometry/images/epiresult.jpg new file mode 100644 index 0000000000000000000000000000000000000000..23185d5e5624d8251c5b401eb24a798add2684ca GIT binary patch literal 80343 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_epipolar_geometry/images/essential_matrix.jpg b/doc/py_tutorials/py_calib3d/py_epipolar_geometry/images/essential_matrix.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8cd534a1b5dac4f2689d439a3c9ffea378e6692a GIT binary patch literal 15526 zcmch;2Ut^Ew>G-yMXK}~nt=3PLlcqWMnI%D5s=dL_6d9t#y))-@!@s4+liTQ?E1E_Q!Xg>gOZ~y=Y z`vNdafI2{chmVhsM}U1JARr(lA|ock9+bCkk&sbS-o8yuNli^d&&ohU%S=a2&B)2f z%*F-+foK@Gc(~YkSlL1Bf87KJ`&S}DA_`(+3U*p*TK50r1Jeai69dOMJ$N`=04_BS z9yJc84*+51B*6K%1Ng^*gNuicm6Di*^cMDldMW@H2M-SyD?e5N?A0OI-vNATg4>+p zYJ@ZfwnSVWv=ZT|1;pIS9AASEp$D<`j@eqZB( zrk1vj;S(cc6H_yDJ9~%cj!w=lUfw>we*OW0kx|hxu`lD|)6z3uXJ);5oBg4%sQ6<^ zX<7N_+PeCN#-`?$p5DIxfx)5SFH_Sqvvc#`78chxHn+Ba?CkFCBYvKqonKrce_j2h z7Y=~;?`mP+|6Q@)^rFVXtZj!-*zlLOE3r&CXy^JW`|hQu zJ@L+st*TeD?9=&~EBcC(gKVX0Sh1C+kAoj$CX+t=3p8uG9emSx^M%9c>uZs~m=w&gYk-_MK7_tMn_XwzgZE6Nx-B4_mRKBUP%(|+cYCX4er zV@phlSgBv3t+Th01|@+Y?~L-%E=unSOl*~6S+G#C%Q(Hb%Xo3HU2`aNLAOr}7-;-Y zx97+_t0|Op!S@66(M9tG3*J4}pL!p{XKKKJJZ~5`!tZ4rjC5C)d9KD|Yw4aCz!boG zGo!KpRS%%3ANCjQ&2DI|9^4#fS^8zttu-Z;shIvSt~0Jx>QKD7)tinX%3Ij5fAPFC z8Rh77F@htUzdPkA^aKNp1Zb)&QeLmUkRJ`y0B8;Vyp9X6eSUI)yfBwE;#XC%O z&Ynp5jDlF{Wwl}#^KnVRK_?srw(^`_?Pm%BJq{%-`Lm<*Y=IDu0=c}>PSJb zl#1sMQPWinz$Q;r?CbqMXnLdBdKNamKbmIF1xu@hjtV7orK;);G#~2%nlP6ux5&a} zm#g;g#+foTZ+WxT!}6h$-*AS(CV1=bxgR5rn<1Ne^yb>GMT?zp^LJ}045#*ePVS=V zR9*z78|<2gT=um;U+TB!Y{;DNxkw}N*5!3rbbAxB)I5KFUx|?M)Ve^GfY#t|jn%I& zk7U_Z(775J=v{+&l%6$xY!Q_KYIhe==)0jT=w^*?g)$Sb1;ji$0q+)4+d#3J8&dT_kSMBtuwT>(bAMS)V z;Z)g4>Uw1pcXrFlU9*{H;d}LyO|p^#V>YAkA&xVy`v3L{gGYe@`k6!W;@06yY5^jJ z(iO`Csp_vLxdm#*Ji2`tFU!Ef8%ipDudH=Tgu5OpHVgeYwOfd@gH#vJhIZlwj00uJZP_0bvg zjkSaB5L~7^nGZ-y^X=30R0Y4*jab0quPT{;RN*(EiR&^R7Jt(!wlI1TYVkG$J9{{1 zsm|9^Y;_xxp$RQ%)|Nc4{Bg&u=HQ!}M)IBzJnMv-zm#>cz6nVFIhTMPM#A$k90AX4mMkS3v z-K5$2^LMfhUV|PG@H4IAq(;FqCVc7{>c=e=h1{hMwh_cb+*56zC-c@-UOw)523^OW zb(2}t3Us;@fzHYnQD`p)3VKY$1Lr#Ytcid3DR?;u$GGi@^JP5kghv)7bJaYJabMA< zNog{#(tqZPl^_ax+4*uz5h9%*9+n7KW(&O<6iV>;LBg!n7m4SzhWBd@nj#fqXn@Fy zIKRchkh`SQnYnS)_p;R>-+us4jAuLc(d^r&(l%uNz5R>ZV@Xn-(?q<3c`0 z*LM&H)sfwkzj$1-7|x!j;kiPM3}4ry8Ji0X{m40kb#N9X)(_?`4RY7|)?_zu*w1Gs za5QN3|Ix%rZ;1mG+DfH3Jl@GNX%C)g;Majj;-u)Q_V=?D%yVgQY72{T3#vdZYOFy|yBIo36i?Zt}J( zk1eiznG$@c#T~IiOG0Zi4y&~&QWyZzCeVufPqS3`A5+jUEQTh;TVTltz9a4e?}};~jU41S&}`&h z7=R*Jw+!l}x0b@t0*mwBy)0UT=ssHd@Lls{VIFD9-ltFG^KTZUi`^J!Ksxp`Y`9ao z8fW5kY`OhPQ{R0l@iin&3a44?IJLmf!3d8hJxp*61FVZ-;ZUdz0aE#)pyrxO2M6y8 zIIy_s<^b9iL28O-lKI>NeW`qBCRqR1__xTA%x|QZWs5c9xySav^3V7_ zU+L97bGP?J3wM&U>>zfoj6Le^w+9l=fM-?uLL1|rXgqlJMceg-KL$uMw8a26jTqp{LOPKAKmGlG`2F8M11`Hdf8ipt&;z43 z7(i#Gov`hC%?1@7{15}!J%?d{Vt4CERk6xzpVo$1GU_Gsj~TYhOo5Eyf1J_^=M_}%s3NJBT@<9Vs2Jt_sB7@Ctt&QL6(-fw^;cF`K6!bp zdA#&WlLzE-W@?}8lxb?O&F%5pN1jYct=h5M*fv0P3x51k;rGwA#!8j=p&EBRy91U|UvtWn0^FvA|V~vyt3B#maN9rpMR^t{& z$78%%-a^{$IC3VK&2mDj0yj_0yLyp9TARz7@+HW0qZwt6gDh(@c>7F4%blVaVW?Tu zS~|-373d^45d-u{C}f|pQR+;eDRIqfPgQZ(eXdW`Boj{*D8){tpb7kJtLV(E5{tb> zpE~1)OvKCe80p2*!hGDy$^SxuzmJCh_)hl)^#J}7p`1t1A3Zr;e7-)T$QVQ@P#TmbIY#YDe^K7(4O}1Rfg|lluHd zT7@c|iF;N!eaGFPsTlYZrG!ZHkNl%G);L*d4?XabmBFaqCBRnHBSp2~RB{3nHdX>A7H@Id5SLdnAYi)WlP=3ii*?0jmM zW_tMg;++d1nqYmeYS+vTs_7iG<=LOQ{+flBa*HK5eJEG2o=(a(zV(sxAiLtqs|0A} zj3`^R$h)hzmYFC*qI#bv`W%17YWc4SwYzAI?a`ry-jKE&?K5Y{H(kzw)h@iFbPwz3 zzhTGUvE*Oh*+bx>Xw{B87@(%s1OrSp!qi~O|LoZ&$o_J!g=K>;8tLb2Rzq@cJv;JZ z;oZ(uDnZ~=5vv#^``1Ijvc{8^OJCA@1&ER+w#~GLIIgH48~a4)IR`HWD|k~mdvtwV z)Y8(gN@JFI-%6#)n)_x8Pi1`vm2f}MW|b0^li9+&gJ#D7Lrtp})SXyqnk(|LQJvyo zDC<;k0D_<{kH7+Izb_*}d9+I7d^`c>z~ZaV85|D<{gz)9!uaUs{KxwgU@zV( zpHg{33I+<6oDx2JFZgJ>&0>8?V~N(c%WR(-_SiRX`D@_THVL1SYY80I2fgJVbGDbd zJo0h>;PPx#ha2Kuax-wfYQ$q=V~Q4lH^v4VI$Wqw?Op^Xs%M-Q5)>+zt_J8eaZC{Q z)9rxZvHsINJJ4{H>1BiVv=#zS3K4!Y(*$bQQ>9pcY=JUpnA&+L3fj#=Q#aeyJ2tWV zB$nLdM14sqJd(oM^?qXPCo`Wp?B(o1*LRzInCB6bX<&q$wD7-Ju`O2<+Pv2FNRM<~ zO(R&|%EeEKIW%Ql+`5gs^E00!t*|MV#fd#At}up&$uBjcJms;T&gltK3(e*K4gw#H z-hdw^oXrHQLIX9+EjWeGRz}WB7EwaeCp!~65TS6saKUpq*M-)>xk2Lz7KQgBWc%7grZbl}DK{fZO^|VkkjM{e5rBIClP>zEGaXo(pmeAi_){ z`a-jCS#AvjG({d*M>@Jf9RJLm^Mx;UGxliQ#y4UQqab*w$~qp^MzF4TOJ`o;Q7Y-G zHoD=;^Lb0grLf?3%8r#Z7F<{>ZInvukp%0{wK=X=sMMKNCB4f==a2?p8f3l;DNu4q z0Pi}(QRtG)8I=t9w%BvVt=#YdR$q(VP=~x`D*`xTE*+_ ztRW0Q3RdSW!xe{%RCu&p(J?V=jO3kvQM|Wvf^(@&R3N>N>y*glA;1_PL)ir3IFmoi zCz`aJYu!A-cM6KB+8Cvu%qrLR&lyDFv!Y*rn6E0;c6WDn2WOi2el%{^{MjQ&`ReYz z=?>Tqu+I$()ApY?kzHNDy3ys5VYgMM=F^6ExwstGUNh+fas%2M%kS&k-xnEYek!86 z7a_N)(eoiZ3^)WnI$!vK{K@-{_3-7K0~69EYtto% zO3j<*6e6}BLfbu6Mo{e_DlLcd>gKO$w@@+RI`Zr zH{@uvdDYWzr3e^)<0;&F79^q${Ve$IpBA7XA9sS;)}`;gtneY3Hcx&B+g-H-RS6xz zcNicl@Z{kylw_H7ksaF7Ej)YXT2yiKV$nC{INKDZpXv4qnKpc8MzYA8db!wq@dhB8 z?8$QhcFS{XO8UzdSj_A*Mc?yib3v*TE19%Z49>uj-4*fbfEqr#8m&H&IDG7wC6CgI z$NnVJc!uk>R=4rBWyv`{sDLhM6Gr3GlG%h^Y~r4{iiFn-Yr5^8y|F;1*h!Kd>h&S4 zoj0-6lmED8%u??v1y{_a!L@Z6FYHZl|EFje4~b+hzI|{Xz1$!V^=Oby7+Cb9zhUp> zx4rA_0KGgPKf#mC{pZ`ozGyC}&{GP2TqvQxqYgYbnm)CtZ-hDR=Lol3W&q_%+5>QH z%~raF)IW#7pYc_LsK`%3S(Tv|+WP_H_izr* zOfp6`b)So}?|GQ6Sh+CYS^0FO(fiPmR$nMSC6y-TlY&k@5TTsD(Hd7U_bkY)qX%NZsinIwFie(^&P7GbHpp>~C*4_z zoHvOalzCWewQTKt`=FxGibQDRp?{Hp+LMqKJFRNMN2KTMXE^(AyKhAHn>ond+2_ve z!$+AfvNwuefp1IPHe2i zc0YV`c;?#cBF^i_6uYX_#Lc#gH}A^V$GkRqQJ4L^z=z3dRJf(!{tn}_uT3!NPYCzK zC>iFPu?k1w#126S^&!C<%bs~%+|IY}POK?espOe{w39-pT+ys;lWo@7p%w04lCjB* z3*1goZ^>sx#peC`($4${J6?bz-s`&)bEk^xiPX$(!Jcj)ihSK@!^eZUsk5E zSA?HB&_yi27vVagjED8vHC51WqZQCS`#Q2SW_}n0@)~h^AL%w;==^E00-5+Rbi9?? z!m%JD*=yBlhy5)r@r83yGGn$`k=CX`=5sk9Fx?umNtui#c7nxD=yu{EFcF4Gid^y$ z$LYJTiS{*u1H8&n_Q;(IFx7iK<0x4%ixl25va|8~AY-2SkN&b3_hyf&`LLA4(V^OQ z)#0;Ko4xi=I9GV8he0Mic`2df$fS+8!HPvo`@UJ&co$UPS6(Y{bJS|O7CuHHI4AfO zO@pF>tMo!N>aFM%53003h=-J4JUuKAj3%Xf;IWsz+aZJ;5XJGQ)JK3bA%Tzvo)<*l z*p_=lERZHb5+VH5vnG6A?1iF#yBEs$Ywz1@xXYXnWKgFf=ZJbw;^q}n zUXDkBA%%nMg5>5rgxgW~9la&IpDDr`=h>|CK-BemA-v;fnL8*ayv>u8P^p`I zuzY~W2V|?^wenkUW~sCncX3}3?NQ&^pc$1Z^e!EWA2-Za;tU1&%pN+$-Eyk(L zqXJ6m;w3p6NMGC=y|mxje0pcFoq*T>d1gbJi*FfJP~B;oBUi(!pIbk4NEydK{xNPTDAv4N@O+qNYZIqmM|*PobF4=W3K!bq5; zCxh=JLdITuK-N3SEi_A!6^{)s9{Q@ZHYUE9r=h;Ivl&eWE}G%j-4`o#(+Co=zBk5<=?x?*U zC=3wojt!9$klNU%Dd+qe#uC;BSo|lt&UZt6<-Ws*0qC%x37!*-B})o|xD zlf=;hPl`f(J4kYOskEWi+`7M{IXW$*w`o=KHxYmU6cnDrTYK{<7Z>R!+A-x8)wy)^ z^K0Nx;fI=IRi=~dMv4*yJ&PiXTpI&?Tli3fe6+~US}x|XX%_o0U(~2?=ih7y{kwtm ziE@`^gt}i` zdx#C50K1^@Ogz30*9nz%4HOU7q99$=76#bBG7-@X@N{%ki0o-P28hq6Am>ADSXo-} zg?F$DH8RA7+-1JDt)|_!A5>l7*`m-h|I^cdU&-&<155&6a7Rt6NXH^(DBSTJ$hHvXRBj+Xn`=fnlh9Iy~jcd0ZRTScRRx#=mOEzbUPr|@p=jE zUS&FoQb%ZN)(1f(d!UrUwgE-&Q>9NMxoaHV%XqR6{0u0=gK&A|G67u&nj6O;$CZvL{UHBcfzLGkQ*msEfM!F&zeI ztgYLOO!Tq=Q--rEw<4J4d`3FSU8;n;bN6`W>BzR;y)q?B%+t9_J6#j)aX#V=2ea7X zX|r&=X1e6$W{Dl0@qxW;vs>3STvzD}x7|>pUo~uO%nH`_EE(#El*6ZvkWi90RGmDp zj)tLhC+eEK+gY%3QV0p?3mnUEiYJq zPe{b(k80723Kd6$j3))FtykITCYT}UVKIxnvHR@&4U^N#=-g>GW_%myYx}0#UY!ub;$*@~8Bg8*T(u z30n?}3rlbHXx|#z@(dYQ>pIIPUuqY!-lxA%zB}8o>gSyd-pJn>Cty5VO4dV)Vtk9 zwQcVsG`QHUNmBgtKyaF&{9CKHgK^gLUNX~Wo4l+;{$SBdf00j8wRAnStT|n9VnZ3M zlxKw0yw*}H((u~}$uVMfn0!RPLBcA^y=zqSEqu>>ipVFEW<9iW3wYGuBXWa)0HY=@-v_LkN+(81ZUqi%+o<6kLH z2^HfBQ%XAsRu`P}2&-V{EKLw$j@C}+=WlzsC>utH`NFLlV^L}a{t+a66X!u}I{Zt2 zCb=pM(O$8#3l0cfVt`)WeRk_*4B*td)cO%xXFuR#L$$xcG12yL=C_r_9dNq ziwgeX2sUMl%m>YiznrP+nwPss+iO+X_x(S#(QNpP6|=`}+E6SZ3k_!KMwGbbFu>7+ zC(e*<=eOp(sU`$ww8{#JKHYRd8zu4XXNtNSU?rG~mle{t=T_NHOGh+k*4O9!q`&OH zex;2doRI4t#Z}6^I-VOCa~)ZFS#`Aj_~(dV^b>=bv_R6=OjdY>gvLzx?8Gn%#4Ri5 zmd5^e9dcjfcQrfw2@4%Wo4@Oyk)L3kk5rEivg={~38tB=11*WU0(lzE@GWsRnPGfe zUJUR++i2@?(GX8+JfL8QmknIR3-*CEs*nv3#lgj&{#d8=M|y9j@nu7%I8Uf)`k||2 z(c8yn+W2V5~?V z`6klC4+W1F|0z-UbBLyIl?+yI5nkN*vP}?LX1On+6b~&i1^;9MiSJxaMg+pX64_Z{ zfEcj)2V{;;%99BnM$scs5~5Kcr~>cHr(@NlwywH2VQo3SF!e3Zr+?#93uZR}`*^2!;W2 z!|ob#$^mQk_|?97xs-?ge4wW@te^B(?5J$@wS++VyLxmB!Se7(r-&WPId=vlgiI;j z$qC|TI7+NfCFaf{k#$KnkhQ)OncgdNDZ3cGFbh^M6H7OoDFR82FVI5qT_>NsAZqvV z#)3^Ou0&3WGE5u)Mg5fNomWSE0+aX0eCWuoKS8H>-MEH^$tyYbT0g2~uPR*m7|o>3 ze5FOKdem*kL@eHUkHq#JYYgL$@r!}lA~M%2_eDr7s&lWVwv-)4DbfjN+nkACZHZv1 zaE4TKY1_Ug)k>DAEP5KDB#@cTt>K}ZA>_spG0bJk>nBpnX-Ou&^+`YtKYap=uK?3& z_d_2+jn?VowU+P}ZJHR+BgJc@?EaZH>5^ru`kM;fk1l*@>%(u{jn|t5_E&N)RW}72 zY@j6LE|hfruU#wc>8l>F5zq+EyT6PsGJ&^|RyaKk; zEe}`tEQZaOdW|8KUnu6@gB*$+JN7=Qaku0@Qw&!H2?Xohr2E_`XuE?c%hk&l6F=3r zdXOC)vaYl2>&(B~W0yrv!?%6A%Uv_)^qUifdu~2X3(gw7k$|r9cEH(L@(gW7<3-0l zNTxcFzNuo^f4j_wB1_%<(AY5wxv+&?__u}0yu2XK540=BYlin{9Z7E_wAQ;bIL#>> zWrq=DYt2p4d~d0~pQkx=Mz`yMp6wu+IdhhRQu*V;zdZ!K7OvByos5@Lirp<<-aF!kBt4t4|CNKk<}RGxoi8O1 zB0x{t5P*e?8}imq$Xr^aTg6igsb%#V5;c8Y8f*xk+oI@pzWz!kpRa=-pSV0r8Y1=IQ6J#>T7sc0CY4oYip(v_L-X}%BH5PSz6e^@#IJ$cjbtzdGv1dr*DREgPc zx1IRD`p0ViQ_5{sr{L2KmBr2tnIdLku5qo&-WOH0gw8}8Th-7t>93jvC?90ALVcey z*DU1wmeSH2VTSK+0(qB1qamZ~CjgSK7pWi`EfvJa#;$lD8T~1*hjM=wfz0MWOA8j?Hgtmn9W2e)2~Ycc%8LK7uFcM#`CM=gKn|J zS(_amZKtk_DS~zS3;FJlaK9dR%eYp|2^!IIJK{?Y3V5YWTl2}mhnpipAws|$-_dl} zoGs?PNRC~h^IU_Z<7h+7>}|fG?(g|ew*qI#u{ndr)YjfW$&g$ce5RTdY_&vbr|7NW zHILCh4OD4GymjgKk6!6GjLhZ~0V~FSow< zUz8M@NFs>(FFI(ZZ3W$V3o2~1x16*8QG`8yr)79QQq5tNuscF&rX1lem z>6MzTE%0^T3)IR?Ig=Y^pFNBWSrF{*M9-pYF2@}ALa==zm`Z)d;$GF1H0s+{o{R9h9xakCX|VSicBIS7I=sI8 zz$*%Lb|62Tax?hlMsR93pTeeFSz!WY#4~67BZ%C323ovlQnqbnaif23^MHwHt|k5l z3bIy3)L+wcm2q1g>f&d%Phb74rQZF?D^KNjk>5>3!0MZnKpx+KzV?PNj=z=f0Ojfu z%)PFwUG;>^aajZK$tA`BDUc_DE|<_NvAhE-0?$seb3t;Ohcor$B0pJ1SrqFj>imm z{xI{3Aa=N8rUi~5=7^k#GX ze%zPEg%@RJ?Ta-wz_$M&DzLqby%r+AD2F;BM3S(%0N(?cS#r7sfASvDwLyA=UioX~ z1S>XLoF5o~z-_%_78T@2^oBdV?+?{9nWWe&FgJlIE@chf9^DQ$+JSD_BO|eHh6TC@ zmfrp6YEzRm6ziN@;iS)~qV|-V=m|q#OPODAzdOA<54U#|>kX~=1>J$s&MFR;kusg@ zJbXUedG^^HSYc<$dCX-)YxDlT&o!;ivpSn{`?o4<_9+^46TPf2`f4nj(rUUdPH2-)-!e-{^*3xRW z-;()WxNdGrYwptsua4vPZHZ*O*W+bYeSXp~RRXV{2n7A=s#exnwhE#;q8Z|+k6mCP z?xik%ugn%T3cuH->v7!IzZ09LHy5Um-HS*`2v%7aBxsxWAwG&q`b-=qDs{48r*^6s zgkzcD-`USDZ3ls0>d`A$yjbCy<>Zo3f~?6ohrDfo%{78Sa4bHB-(0)O-nMkL=6LNP zQ&lSaR-SEE@j>2UDc*r9qd(#@MRW8b1rOcLgTOM9H2PYb+McqxnluV zTO!4e8QaD0JKMS6)#iD+y2S%`KXYlbXmSY_;#OigJS8cfNtMM&tmFOx}EDldsf)4<#X%HeyK+iY)5*`w0f~a0xDA%4s`|Mbr%PXgr=$}#1RPb%8^~9tBhwdT9p<|rA6{jZ--;&UD>!n z&bgjpW6Rqr`?_}5=Mg?>8cWU3|DYP`-Ss5iRo#~$Cio(7>sG7lwH!?7hj#vJKkl-% z_}nlswt!3&m6%5bJ+yPb;fra0OujPn2y^Bo1`~-2t0lC*p$U<_;HpzY46mAM@;&%$*uGJTjrg8?u{;z zPEg9T-i;7r$mOXq>)1Jwv7xzqvjsm^2ooHlbG3Lh zNY>tkpDOF&75gbX$SK)l4mS7Aa&UKWCOt}KEnIptt73u*B!{@8T{>dd0#5X|WgLz<|y&ww8meJ80D5&H5gvllsR`1NHM zgdb;2^P}tgn-nysE4vhYtkHHOXxPoCT>;frCANsRZ03M;b&*wzDUgv81{Gr`aK!I> zP09~Q0(jE{*xw8E2Tmv~wNlXED{)rt+Nd&#UG2!cqAvkYm7s(iX16U2I&Z|ZFVeRJ zL~VHbYdM08Z_%uTfeY6fd!b402-5vi>qLvFtzRGE4de{iRI};f9mHQT zI@>UYbs?aU*nKNcnL4p>fDL36YnX|a0#6tyk}7^d5m(&rxU{QF5-r~~R5me=j=0U^0^ zur(Kg6HeG#8}taW9|NezMybFxWHA7b!A%w-0Ub+83|)(NM{B{0V3{VMQ$gI2To58I}>frxLZQh;yyH2%ztnkT6+ zm2NVI$<&^DS0iBgGE5poVKq{LlAPh1D)N=EbZX>ic<&vwt|=yt{^_y*F-+b9L>?Sc zi;NR`g)Hgy*p*Q2!=D~s$h_wXeZeZ{*`Iv01HKW2{caz_x;&;mYd%STmA(rTYi0y~ zS){EOhjFlX+M>bFAsi-x0DMmZUvmh`#L#N7{88G%7p_-2O~OATSnVQ;*gNu*#Z}pb z;Y)hR{Hv2Bjo3JpI9WyYrxs`L084GrREDo%k7TOF#Jq;U^R9pIiDD$y8FBOVfvy>s zFo54$?yw@Wq}R79;a|=@I16$7b{)>}I!gM2c3r z;s$6NwAf;qlw6l9#ykF=#s>ar%*H`vH#-_PgM>A85MvSEEFqJBAWXr=CtNgn%k;t= zV}#qUD2NZe4$O0_TrLLn6RhiMroFFYn4^w?$5fu-OWSz9ck>ujs|{ zqBiqdZC+W`>Th!^ken8q*8HuD{>36dl=r&<`F|hJCi&P281na_R`}a|w~o{R0xo}> z^eO+J$t2j_=>&@fF;>^#sF+Vp%^POh|J=#xZGb$#?sfR1_v>@$b3VM>_vn@nVa?+x z*@pQ_6hXlvG8d|19{)wEJ>7T1{??eD*M88u>|MbxV69+D(S+b99rBs@Y5W@sa!nz{ zPk)*SyN?Br%lh95{WF^V^>-v;&<@-!j=lD-LgPg+?-398*HamhquyHkQ*6%%{_YBL zYQW=?&ra}IYQ~f#AAJau43;e#{NVg-Krv24C5Q(m6z1mZC(^eTSW_kNf4^&yEQQ|R z@gBlB(|bASQOpI|vF;`%jjy-u7qLS%Y{|Ak?1oD3F9`4F)@DRXbk+7~p9DYTG2;t0 z0M2)-n~1Y%a5PuxSv>F)%N7O>SNjUNR3RP;fLY`O&_|%=JvhKW)-78DAkld~9}iFGE^%T?x8eEh0;v1WgOn`Oc-X zG;5vS;RYI6$wwnzNXB0g7B)uQdNG18-p4lbN#j;?+%O;8@QEsWP$5c6A$o?nq>t^M zQs^=7DaUkS%E+`Zi~KK6vDqn6t#0JvOUBLDyZ literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_epipolar_geometry/py_epipolar_geometry.rst b/doc/py_tutorials/py_calib3d/py_epipolar_geometry/py_epipolar_geometry.rst new file mode 100644 index 000000000..e017bd6fe --- /dev/null +++ b/doc/py_tutorials/py_calib3d/py_epipolar_geometry/py_epipolar_geometry.rst @@ -0,0 +1,158 @@ +.. _epipolar_geometry: + + +Epipolar Geometry +********************* + + +Goal +======== +In this section, + + * We will learn about the basics of multiview geometry + * We will see what is epipole, epipolar lines, epipolar constraint etc. + + +Basic Concepts +================= + +When we take an image using pin-hole camera, we loose an important information, ie depth of the image. Or how far is each point in the image from the camera because it is a 3D-to-2D conversion. So it is an important question whether we can find the depth information using these cameras. And the answer is to use more than one camera. Our eyes works in similar way where we use two cameras (two eyes) which is called stereo vision. So let's see what OpenCV provides in this field. + +(*Learning OpenCV* by Gary Bradsky has a lot of information in this field.) + +Before going to depth images, let's first understand some basic concepts in multiview geometry. In this section we will deal with epipolar geometry. See the image below which shows a basic setup with two cameras taking the image of same scene. + + .. image:: images/epipolar.jpg + :alt: Epipolar geometry + :align: center + + +If we are using only the left camera, we can't find the 3D point corresponding to the point :math:`x` in image because every point on the line :math:`OX` projects to the same point on the image plane. But consider the right image also. Now different points on the line :math:`OX` projects to different points (:math:`x'`) in right plane. So with these two images, we can triangulate the correct 3D point. This is the whole idea. + +The projection of the different points on :math:`OX` form a line on right plane (line :math:`l'`). We call it **epiline** corresponding to the point :math:`x`. It means, to find the point :math:`x` on the right image, search along this epiline. It should be somewhere on this line (Think of it this way, to find the matching point in other image, you need not search the whole image, just search along the epiline. So it provides better performance and accuracy). This is called **Epipolar Constraint**. Similarly all points will have its corresponding epilines in the other image. The plane :math:`XOO'` is called **Epipolar Plane**. + +:math:`O` and :math:`O'` are the camera centers. From the setup given above, you can see that projection of right camera :math:`O'` is seen on the left image at the point, :math:`e`. It is called the **epipole**. Epipole is the point of intersection of line through camera centers and the image planes. Similarly :math:`e'` is the epipole of the left camera. In some cases, you won't be able to locate the epipole in the image, they may be outside the image (which means, one camera doesn't see the other). + +All the epilines pass through its epipole. So to find the location of epipole, we can find many epilines and find their intersection point. + +So in this session, we focus on finding epipolar lines and epipoles. But to find them, we need two more ingredients, **Fundamental Matrix (F)** and **Essential Matrix (E)**. Essential Matrix contains the information about translation and rotation, which describe the location of the second camera relative to the first in global coordinates. See the image below (Image courtesy: Learning OpenCV by Gary Bradsky): + + .. image:: images/essential_matrix.jpg + :alt: Essential Matrix + :align: center + +But we prefer measurements to be done in pixel coordinates, right? Fundamental Matrix contains the same information as Essential Matrix in addition to the information about the intrinsics of both cameras so that we can relate the two cameras in pixel coordinates. (If we are using rectified images and normalize the point by dividing by the focal lengths, :math:`F=E`). In simple words, Fundamental Matrix F, maps a point in one image to a line (epiline) in the other image. This is calculated from matching points from both the images. A minimum of 8 such points are required to find the fundamental matrix (while using 8-point algorithm). More points are preferred and use RANSAC to get a more robust result. + + +Code +========= + +So first we need to find as many possible matches between two images to find the fundamental matrix. For this, we use SIFT descriptors with FLANN based matcher and ratio test. +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img1 = cv2.imread('myleft.jpg',0) #queryimage # left image + img2 = cv2.imread('myright.jpg',0) #trainimage # right image + + sift = cv2.SIFT() + + # find the keypoints and descriptors with SIFT + kp1, des1 = sift.detectAndCompute(img1,None) + kp2, des2 = sift.detectAndCompute(img2,None) + + # FLANN parameters + FLANN_INDEX_KDTREE = 0 + index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5) + search_params = dict(checks=50) + + flann = cv2.FlannBasedMatcher(index_params,search_params) + matches = flann.knnMatch(des1,des2,k=2) + + good = [] + pts1 = [] + pts2 = [] + + # ratio test as per Lowe's paper + for i,(m,n) in enumerate(matches): + if m.distance < 0.8*n.distance: + good.append(m) + pts2.append(kp2[m.trainIdx].pt) + pts1.append(kp1[m.queryIdx].pt) + + +Now we have the list of best matches from both the images. Let's find the Fundamental Matrix. +:: + + pts1 = np.int32(pts1) + pts2 = np.int32(pts2) + F, mask = cv2.findFundamentalMat(pts1,pts2,cv2.FM_LMEDS) + + # We select only inlier points + pts1 = pts1[mask.ravel()==1] + pts2 = pts2[mask.ravel()==1] + + +Next we find the epilines. Epilines corresponding to the points in first image is drawn on second image. So mentioning of correct images are important here. We get an array of lines. So we define a new function to draw these lines on the images. +:: + + def drawlines(img1,img2,lines,pts1,pts2): + ''' img1 - image on which we draw the epilines for the points in img2 + lines - corresponding epilines ''' + r,c = img1.shape + img1 = cv2.cvtColor(img1,cv2.COLOR_GRAY2BGR) + img2 = cv2.cvtColor(img2,cv2.COLOR_GRAY2BGR) + for r,pt1,pt2 in zip(lines,pts1,pts2): + color = tuple(np.random.randint(0,255,3).tolist()) + x0,y0 = map(int, [0, -r[2]/r[1] ]) + x1,y1 = map(int, [c, -(r[2]+r[0]*c)/r[1] ]) + img1 = cv2.line(img1, (x0,y0), (x1,y1), color,1) + img1 = cv2.circle(img1,tuple(pt1),5,color,-1) + img2 = cv2.circle(img2,tuple(pt2),5,color,-1) + return img1,img2 + + +Now we find the epilines in both the images and draw them. +:: + + # Find epilines corresponding to points in right image (second image) and + # drawing its lines on left image + lines1 = cv2.computeCorrespondEpilines(pts2.reshape(-1,1,2), 2,F) + lines1 = lines1.reshape(-1,3) + img5,img6 = drawlines(img1,img2,lines1,pts1,pts2) + + # Find epilines corresponding to points in left image (first image) and + # drawing its lines on right image + lines2 = cv2.computeCorrespondEpilines(pts1.reshape(-1,1,2), 1,F) + lines2 = lines2.reshape(-1,3) + img3,img4 = drawlines(img2,img1,lines2,pts2,pts1) + + plt.subplot(121),plt.imshow(img5) + plt.subplot(122),plt.imshow(img3) + plt.show() + + +Below is the result we get: + + .. image:: images/epiresult.jpg + :alt: Epilines + :align: center + + +You can see in the left image that all epilines are converging at a point outside the image at right side. That meeting point is the epipole. + +For better results, images with good resolution and many non-planar points should be used. + + +Additional Resources +========================== + + +Exercises +============= + +#. One important topic is the forward movement of camera. Then epipoles will be seen at the same locations in both with epilines emerging from a fixed point. `See this discussion `_. + +#. Fundamental Matrix estimation is sensitive to quality of matches, outliers etc. It becomes worse when all selected matches lie on the same plane. `Check this discussion `_. diff --git a/doc/py_tutorials/py_calib3d/py_pose/images/pose_1.jpg b/doc/py_tutorials/py_calib3d/py_pose/images/pose_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4cf3f672158a93e79eed31a053accb3fabbd3b77 GIT binary patch literal 45502 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_pose/images/pose_2.jpg b/doc/py_tutorials/py_calib3d/py_pose/images/pose_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..04aeb5ae2aa6a1fdf9f20012894ba1daccb239ad GIT binary patch literal 26861 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_pose/py_pose.rst b/doc/py_tutorials/py_calib3d/py_pose/py_pose.rst new file mode 100644 index 000000000..c74380202 --- /dev/null +++ b/doc/py_tutorials/py_calib3d/py_pose/py_pose.rst @@ -0,0 +1,132 @@ +.. _pose_estimation: + + +Pose Estimation +********************* + +Goal +========== + +In this section, + * We will learn to exploit calib3d module to create some 3D effects in images. + + +Basics +======== + +This is going to be a small section. During the last session on camera calibration, you have found the camera matrix, distortion coefficients etc. Given a pattern image, we can utilize the above information to calculate its pose, or how the object is situated in space, like how it is rotated, how it is displaced etc. For a planar object, we can assume Z=0, such that, the problem now becomes how camera is placed in space to see our pattern image. So, if we know how the object lies in the space, we can draw some 2D diagrams in it to simulate the 3D effect. Let's see how to do it. + +Our problem is, we want to draw our 3D coordinate axis (X, Y, Z axes) on our chessboard's first corner. X axis in blue color, Y axis in green color and Z axis in red color. So in-effect, Z axis should feel like it is perpendicular to our chessboard plane. + +First, let's load the camera matrix and distortion coefficients from the previous calibration result. +:: + + import cv2 + import numpy as np + import glob + + # Load previously saved data + with np.load('B.npz') as X: + mtx, dist, _, _ = [X[i] for i in ('mtx','dist','rvecs','tvecs')] + + +Now let's create a function, ``draw`` which takes the corners in the chessboard (obtained using **cv2.findChessboardCorners()**) and **axis points** to draw a 3D axis. +:: + + def draw(img, corners, imgpts): + corner = tuple(corners[0].ravel()) + img = cv2.line(img, corner, tuple(imgpts[0].ravel()), (255,0,0), 5) + img = cv2.line(img, corner, tuple(imgpts[1].ravel()), (0,255,0), 5) + img = cv2.line(img, corner, tuple(imgpts[2].ravel()), (0,0,255), 5) + return img + +Then as in previous case, we create termination criteria, object points (3D points of corners in chessboard) and axis points. Axis points are points in 3D space for drawing the axis. We draw axis of length 3 (units will be in terms of chess square size since we calibrated based on that size). So our X axis is drawn from (0,0,0) to (3,0,0), so for Y axis. For Z axis, it is drawn from (0,0,0) to (0,0,-3). Negative denotes it is drawn towards the camera. +:: + + criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) + objp = np.zeros((6*7,3), np.float32) + objp[:,:2] = np.mgrid[0:7,0:6].T.reshape(-1,2) + + axis = np.float32([[3,0,0], [0,3,0], [0,0,-3]]).reshape(-1,3) + + +Now, as usual, we load each image. Search for 7x6 grid. If found, we refine it with subcorner pixels. Then to calculate the rotation and translation, we use the function, **cv2.solvePnPRansac()**. Once we those transformation matrices, we use them to project our **axis points** to the image plane. In simple words, we find the points on image plane corresponding to each of (3,0,0),(0,3,0),(0,0,3) in 3D space. Once we get them, we draw lines from the first corner to each of these points using our ``draw()`` function. Done !!! + +:: + + for fname in glob.glob('left*.jpg'): + img = cv2.imread(fname) + gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + ret, corners = cv2.findChessboardCorners(gray, (7,6),None) + + if ret == True: + corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria) + + # Find the rotation and translation vectors. + rvecs, tvecs, inliers = cv2.solvePnPRansac(objp, corners2, mtx, dist) + + # project 3D points to image plane + imgpts, jac = cv2.projectPoints(axis, rvecs, tvecs, mtx, dist) + + img = draw(img,corners2,imgpts) + cv2.imshow('img',img) + k = cv2.waitKey(0) & 0xff + if k == 's': + cv2.imwrite(fname[:6]+'.png', img) + + cv2.destroyAllWindows() + +See some results below. Notice that each axis is 3 squares long.: + + .. image:: images/pose_1.jpg + :alt: Pose Estimation + :align: center + + +Render a Cube +--------------- + +If you want to draw a cube, modify the draw() function and axis points as follows. + +Modified draw() function: +:: + + def draw(img, corners, imgpts): + imgpts = np.int32(imgpts).reshape(-1,2) + + # draw ground floor in green + img = cv2.drawContours(img, [imgpts[:4]],-1,(0,255,0),-3) + + # draw pillars in blue color + for i,j in zip(range(4),range(4,8)): + img = cv2.line(img, tuple(imgpts[i]), tuple(imgpts[j]),(255),3) + + # draw top layer in red color + img = cv2.drawContours(img, [imgpts[4:]],-1,(0,0,255),3) + + return img + + +Modified axis points. They are the 8 corners of a cube in 3D space: +:: + + axis = np.float32([[0,0,0], [0,3,0], [3,3,0], [3,0,0], + [0,0,-3],[0,3,-3],[3,3,-3],[3,0,-3] ]) + + +And look at the result below: + + .. image:: images/pose_2.jpg + :alt: Pose Estimation + :align: center + + +If you are interested in graphics, augmented reality etc, you can use OpenGL to render more complicated figures. + + +Additional Resources +=========================== + + +Exercises +=========== diff --git a/doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/calibration_icon.jpg b/doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/calibration_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c5133e967ce69723f1465cf192ab01bb8839f48 GIT binary patch literal 3668 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 CbJdyv literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/depthmap_icon.jpg b/doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/depthmap_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f813d116d48f47238bbcb31344a5edb7949412ff GIT binary patch literal 3743 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/epipolar_icon.jpg b/doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/epipolar_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1c172d4aef29a4a0b7c3857e7f06b2371e502315 GIT binary patch literal 3648 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 Y=J|RI3?I(yi`e>m2K+q-BAFBa0ChgQw*UYD literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/pose_icon.jpg b/doc/py_tutorials/py_calib3d/py_table_of_contents_calib3d/images/pose_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..badd86a9dc3ce871949c4f3040451c62b39f57f2 GIT binary patch literal 3603 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%0A*q~1FZZ+b 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 W&lFK!LK7TkB>> import cv2 + >>> import numpy as np + + >>> img = cv2.imread('messi5.jpg') + +You can access a pixel value by its row and column coordinates. For BGR image, it returns an array of Blue, Green, Red values. For grayscale image, just corresponding intensity is returned. +:: + + >>> px = img[100,100] + >>> print px + [157 166 200] + + # accessing only blue pixel + >>> blue = img[100,100,0] + >>> print blue + 157 + +You can modify the pixel values the same way. +:: + + >>> img[100,100] = [255,255,255] + >>> print img[100,100] + [255 255 255] + +.. warning:: Numpy is a optimized library for fast array calculations. So simply accessing each and every pixel values and modifying it will be very slow and it is discouraged. + +.. note:: Above mentioned method is normally used for selecting a region of array, say first 5 rows and last 3 columns like that. For individual pixel access, Numpy array methods, ``array.item()`` and ``array.itemset()`` is considered to be more better. But it always returns a scalar. So if you want to access all B,G,R values, you need to call ``array.item()`` separately for all. + +Better pixel accessing and editing method : + +.. code-block:: python + + # accessing RED value + >>> img.item(10,10,2) + 59 + + # modifying RED value + >>> img.itemset((10,10,2),100) + >>> img.item(10,10,2) + 100 + +Accessing Image Properties +============================= + +Image properties include number of rows, columns and channels, type of image data, number of pixels etc. + +Shape of image is accessed by ``img.shape``. It returns a tuple of number of rows, columns and channels (if image is color): +:: + + >>> print img.shape + (342, 548, 3) + +.. note:: If image is grayscale, tuple returned contains only number of rows and columns. So it is a good method to check if loaded image is grayscale or color image. + +Total number of pixels is accessed by ``img.size``: +:: + + >>> print img.size + 562248 + +Image datatype is obtained by ``img.dtype``: +:: + + >>> print img.dtype + uint8 + +.. note:: ``img.dtype`` is very important while debugging because a large number of errors in OpenCV-Python code is caused by invalid datatype. + +Image ROI +=========== + +Sometimes, you will have to play with certain region of images. For eye detection in images, first face detection is done all over the image and when face is obtained, we select the face region alone and search for eyes inside it instead of searching whole image. It improves accuracy (because eyes are always on faces :D ) and performance (because we search for a small area) + +ROI is again obtained using Numpy indexing. Here I am selecting the ball and copying it to another region in the image: +:: + + >>> ball = img[280:340, 330:390] + >>> img[273:333, 100:160] = ball + +Check the results below: + + .. image:: images/roi.jpg + :alt: Image ROI + :align: center + +Splitting and Merging Image Channels +====================================== + +Sometimes you will need to work separately on B,G,R channels of image. Then you need to split the BGR images to single planes. Or another time, you may need to join these individual channels to BGR image. You can do it simply by: +:: + + >>> b,g,r = cv2.split(img) + >>> img = cv2.merge((b,g,r)) + +Or + + >>> b = img[:,:,0] + +Suppose, you want to make all the red pixels to zero, you need not split like this and put it equal to zero. You can simply use Numpy indexing, and that is more faster. +:: + + >>> img[:,:,2] = 0 + +.. warning:: ``cv2.split()`` is a costly operation (in terms of time). So do it only if you need it. Otherwise go for Numpy indexing. + +Making Borders for Images (Padding) +==================================== +If you want to create a border around the image, something like a photo frame, you can use **cv2.copyMakeBorder()** function. But it has more applications for convolution operation, zero padding etc. This function takes following arguments: + + * **src** - input image + * **top**, **bottom**, **left**, **right** - border width in number of pixels in corresponding directions + * **borderType** - Flag defining what kind of border to be added. It can be following types: + * **cv2.BORDER_CONSTANT** - Adds a constant colored border. The value should be given as next argument. + * **cv2.BORDER_REFLECT** - Border will be mirror reflection of the border elements, like this : *fedcba|abcdefgh|hgfedcb* + * **cv2.BORDER_REFLECT_101** or **cv2.BORDER_DEFAULT** - Same as above, but with a slight change, like this : *gfedcb|abcdefgh|gfedcba* + * **cv2.BORDER_REPLICATE** - Last element is replicated throughout, like this: *aaaaaa|abcdefgh|hhhhhhh* + * **cv2.BORDER_WRAP** - Can't explain, it will look like this : *cdefgh|abcdefgh|abcdefg* + * **value** - Color of border if border type is ``cv2.BORDER_CONSTANT`` + +Below is a sample code demonstrating all these border types for better understanding: +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + BLUE = [255,0,0] + + img1 = cv2.imread('opencv_logo.png') + + replicate = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REPLICATE) + reflect = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT) + reflect101 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT_101) + wrap = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_WRAP) + constant= cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT,value=BLUE) + + plt.subplot(231),plt.imshow(img1,'gray'),plt.title('ORIGINAL') + plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE') + plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT') + plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101') + plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP') + plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT') + + plt.show() + +See the result below. (Image is displayed with matplotlib. So RED and BLUE planes will be interchanged): + + .. image:: images/border.jpg + :alt: Border Types + :align: center + +Additional Resources +========================= + +Exercises +=========== diff --git a/doc/py_tutorials/py_core/py_image_arithmetics/images/blending.jpg b/doc/py_tutorials/py_core/py_image_arithmetics/images/blending.jpg new file mode 100644 index 0000000000000000000000000000000000000000..96e26c88bddfe2c4c3192e94cd3935c364ab8acd GIT binary patch literal 18624 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_core/py_image_arithmetics/images/overlay.jpg b/doc/py_tutorials/py_core/py_image_arithmetics/images/overlay.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b20b92904709a30608543d8573c9685e08e4e45 GIT binary patch literal 23829 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_core/py_image_arithmetics/py_image_arithmetics.rst b/doc/py_tutorials/py_core/py_image_arithmetics/py_image_arithmetics.rst new file mode 100644 index 000000000..0568fda44 --- /dev/null +++ b/doc/py_tutorials/py_core/py_image_arithmetics/py_image_arithmetics.rst @@ -0,0 +1,115 @@ +.. _Image_Arithmetics: + +Arithmetic Operations on Images +********************************* + +Goal +===== + + * Learn several arithmetic operations on images like addition, subtraction, bitwise operations etc. + * You will learn these functions : **cv2.add()**, **cv2.addWeighted()** etc. + +Image Addition +================ + +You can add two images by OpenCV function, ``cv2.add()`` or simply by numpy operation, ``res = img1 + img2``. Both images should be of same depth and type, or second image can just be a scalar value. + +.. note:: There is a difference between OpenCV addition and Numpy addition. OpenCV addition is a saturated operation while Numpy addition is a modulo operation. + +For example, consider below sample: +:: + + >>> x = np.uint8([250]) + >>> y = np.uint8([10]) + + >>> print cv2.add(x,y) # 250+10 = 260 => 255 + [[255]] + + >>> print x+y # 250+10 = 260 % 256 = 4 + [4] + +It will be more visible when you add two images. OpenCV function will provide a better result. So always better stick to OpenCV functions. + +Image Blending +================= + +This is also image addition, but different weights are given to images so that it gives a feeling of blending or transparency. Images are added as per the equation below: + +.. math:: + + g(x) = (1 - \alpha)f_{0}(x) + \alpha f_{1}(x) + +By varying :math:`\alpha` from :math:`0 \rightarrow 1`, you can perform a cool transition between one image to another. + +Here I took two images to blend them together. First image is given a weight of 0.7 and second image is given 0.3. ``cv2.addWeighted()`` applies following equation on the image. + +.. math:: + + dst = \alpha \cdot img1 + \beta \cdot img2 + \gamma + +Here :math:`\gamma` is taken as zero. +:: + + img1 = cv2.imread('ml.png') + img2 = cv2.imread('opencv_logo.jpg') + + dst = cv2.addWeighted(img1,0.7,img2,0.3,0) + + cv2.imshow('dst',dst) + cv2.waitKey(0) + cv2.destroyAllWindows() + +Check the result below: + + .. image:: images/blending.jpg + :alt: Image Blending + :align: center + +Bitwise Operations +=================== + +This includes bitwise AND, OR, NOT and XOR operations. They will be highly useful while extracting any part of the image (as we will see in coming chapters), defining and working with non-rectangular ROI etc. Below we will see an example on how to change a particular region of an image. + +I want to put OpenCV logo above an image. If I add two images, it will change color. If I blend it, I get an transparent effect. But I want it to be opaque. If it was a rectangular region, I could use ROI as we did in last chapter. But OpenCV logo is a not a rectangular shape. So you can do it with bitwise operations as below: +:: + + # Load two images + img1 = cv2.imread('messi5.jpg') + img2 = cv2.imread('opencv_logo.png') + + # I want to put logo on top-left corner, So I create a ROI + rows,cols,channels = img2.shape + roi = img1[0:rows, 0:cols ] + + # Now create a mask of logo and create its inverse mask also + img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY) + ret, mask = cv2.threshold(img2gray, 10, 255, cv2.THRESH_BINARY) + mask_inv = cv2.bitwise_not(mask) + + # Now black-out the area of logo in ROI + img1_bg = cv2.bitwise_and(roi,roi,mask = mask_inv) + + # Take only region of logo from logo image. + img2_fg = cv2.bitwise_and(img2,img2,mask = mask) + + # Put logo in ROI and modify the main image + dst = cv2.add(img1_bg,img2_fg) + img1[0:rows, 0:cols ] = dst + + cv2.imshow('res',img1) + cv2.waitKey(0) + cv2.destroyAllWindows() + +See the result below. Left image shows the mask we created. Right image shows the final result. For more understanding, display all the intermediate images in the above code, especially ``img1_bg`` and ``img2_fg``. + + .. image:: images/overlay.jpg + :alt: Otsu's Thresholding + :align: center + + +Additional Resources +====================== + +Exercises +============ +#. Create a slide show of images in a folder with smooth transition between images using ``cv2.addWeighted`` function diff --git a/doc/py_tutorials/py_core/py_maths_tools/py_maths_tools.rst b/doc/py_tutorials/py_core/py_maths_tools/py_maths_tools.rst new file mode 100644 index 000000000..0f30489e7 --- /dev/null +++ b/doc/py_tutorials/py_core/py_maths_tools/py_maths_tools.rst @@ -0,0 +1,4 @@ +.. _Mathematical_Tools: + +Mathematical Tools in OpenCV +******************************** diff --git a/doc/py_tutorials/py_core/py_optimization/py_optimization.rst b/doc/py_tutorials/py_core/py_optimization/py_optimization.rst new file mode 100644 index 000000000..58d1b78d6 --- /dev/null +++ b/doc/py_tutorials/py_core/py_optimization/py_optimization.rst @@ -0,0 +1,141 @@ +.. _Optimization_Techniques: + +Performance Measurement and Improvement Techniques +**************************************************** + +Goal +====== + +In image processing, since you are dealing with large number of operations per second, it is mandatory that your code is not only providing the correct solution, but also in the fastest manner. So in this chapter, you will learn + + * To measure the performance of your code. + * Some tips to improve the performance of your code. + * You will see these functions : **cv2.getTickCount**, **cv2.getTickFrequency** etc. + +Apart from OpenCV, Python also provides a module **time** which is helpful in measuring the time of execution. Another module **profile** helps to get detailed report on the code, like how much time each function in the code took, how many times the function was called etc. But, if you are using IPython, all these features are integrated in an user-friendly manner. We will see some important ones, and for more details, check links in **Additional Resouces** section. + +Measuring Performance with OpenCV +================================== + +**cv2.getTickCount** function returns the number of clock-cycles after a reference event (like the moment machine was switched ON) to the moment this function is called. So if you call it before and after the function execution, you get number of clock-cycles used to execute a function. + +**cv2.getTickFrequency** function returns the frequency of clock-cycles, or the number of clock-cycles per second. So to find the time of execution in seconds, you can do following: +:: + + e1 = cv2.getTickCount() + # your code execution + e2 = cv2.getTickCount() + time = (e2 - e1)/ cv2.getTickFrequency() + +We will demonstrate with following example. Following example apply median filtering with a kernel of odd size ranging from 5 to 49. (Don't worry about what will the result look like, that is not our goal): +:: + + img1 = cv2.imread('messi5.jpg') + + e1 = cv2.getTickCount() + for i in xrange(5,49,2): + img1 = cv2.medianBlur(img1,i) + e2 = cv2.getTickCount() + t = (e2 - e1)/cv2.getTickFrequency() + print t + + # Result I got is 0.521107655 seconds + +.. note:: You can do the same with ``time`` module. Instead of ``cv2.getTickCount``, use ``time.time()`` function. Then take the difference of two times. + + +Default Optimization in OpenCV +================================ + +Many of the OpenCV functions are optimized using SSE2, AVX etc. It contains unoptimized code also. So if our system support these features, we should exploit them (almost all modern day processors support them). It is enabled by default while compiling. So OpenCV runs the optimized code if it is enabled, else it runs the unoptimized code. You can use **cv2.useOptimized()** to check if it is enabled/disabled and **cv2.setUseOptimized()** to enable/disable it. Let's see a simple example. +:: + + # check if optimization is enabled + In [5]: cv2.useOptimized() + Out[5]: True + + In [6]: %timeit res = cv2.medianBlur(img,49) + 10 loops, best of 3: 34.9 ms per loop + + # Disable it + In [7]: cv2.setUseOptimized(False) + + In [8]: cv2.useOptimized() + Out[8]: False + + In [9]: %timeit res = cv2.medianBlur(img,49) + 10 loops, best of 3: 64.1 ms per loop + + +See, optimized median filtering is ~2x faster than unoptimized version. If you check its source, you can see median filtering is SIMD optimized. So you can use this to enable optimization at the top of your code (remember it is enabled by default). + + +Measuring Performance in IPython +============================================================ + +Sometimes you may need to compare the performance of two similar operations. IPython gives you a magic command ``%timeit`` to perform this. It runs the code several times to get more accurate results. Once again, they are suitable to measure single line codes. + +For example, do you know which of the following addition operation is more better, ``x = 5; y = x**2``, ``x = 5; y = x*x``, ``x = np.uint8([5]); y = x*x`` or ``y = np.square(x)`` ? We will find it with %timeit in IPython shell. +:: + + In [10]: x = 5 + + In [11]: %timeit y=x**2 + 10000000 loops, best of 3: 73 ns per loop + + In [12]: %timeit y=x*x + 10000000 loops, best of 3: 58.3 ns per loop + + In [15]: z = np.uint8([5]) + + In [17]: %timeit y=z*z + 1000000 loops, best of 3: 1.25 us per loop + + In [19]: %timeit y=np.square(z) + 1000000 loops, best of 3: 1.16 us per loop + +You can see that, ``x = 5 ; y = x*x`` is fastest and it is around 20x faster compared to Numpy. If you consider the array creation also, it may reach upto 100x faster. Cool, right? *(Numpy devs are working on this issue)* + +.. note:: Python scalar operations are faster than Numpy scalar operations. So for operations including one or two elements, Python scalar is better than Numpy arrays. Numpy takes advantage when size of array is a little bit bigger. + +We will try one more example. This time, we will compare the performance of **cv2.countNonZero()** and **np.count_nonzero()** for same image. +:: + + In [35]: %timeit z = cv2.countNonZero(img) + 100000 loops, best of 3: 15.8 us per loop + + In [36]: %timeit z = np.count_nonzero(img) + 1000 loops, best of 3: 370 us per loop + +See, OpenCV function is nearly 25x faster than Numpy function. + +.. note:: Normally, OpenCV functions are faster than Numpy functions. So for same operation, OpenCV functions are preferred. But, there can be exceptions, especially when Numpy works with views instead of copies. + + +More IPython magic commands +============================= + +There are several other magic commands to measure the performance, profiling, line profiling, memory measurement etc. They all are well documented. So only links to those docs are provided here. Interested readers are recommended to try them out. + +Performance Optimization Techniques +===================================== + +There are several techniques and coding methods to exploit maximum performance of Python and Numpy. Only relevant ones are noted here and links are given to important sources. The main thing to be noted here is that, first try to implement the algorithm in a simple manner. Once it is working, profile it, find the bottlenecks and optimize them. + + #. Avoid using loops in Python as far as possible, especially double/triple loops etc. They are inherently slow. + #. Vectorize the algorithm/code to the maximum possible extent because Numpy and OpenCV are optimized for vector operations. + #. Exploit the cache coherence. + #. Never make copies of array unless it is needed. Try to use views instead. Array copying is a costly operation. + +Even after doing all these operations, if your code is still slow, or use of large loops are inevitable, use additional libraries like Cython to make it faster. + +Additional Resources +====================== + +1. `Python Optimization Techniques `_ +2. Scipy Lecture Notes - `Advanced Numpy `_ +3. `Timing and Profiling in IPython `_ + + +Exercises +============ diff --git a/doc/py_tutorials/py_core/py_table_of_contents_core/images/image_arithmetic.jpg b/doc/py_tutorials/py_core/py_table_of_contents_core/images/image_arithmetic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50d045c1e8430bb9019b66c432aa78adffce1b55 GIT binary patch literal 2087 zcmbW!dpOkF8VB$-7nd<&CKPt=MlIe(pV-u0~YJnLESv!3r~EocZD2N+kU z15N-20{|u&0D24d1GJ1RN>&DqLZRf*=uH@PEJjfgqrFvCN!>u#$jCrfABW#*V~RH+ z?7-=pyO>Y`Y+fCiPTpc`Z_B+~dTmnPO%VQKUT3D=>y|KQr{r_ChV}O+fBtSyI zbO9U-LttUhGoU5ODFyqZz&{EGMa6Rbj=N}Mwh!hbSbtL*|Ol(qe3MDly{p7iyvvYFu&eMu7|FxvFti0k%Rdo&H zCbPD#zVUt&yP5N#<(H>z&)PdWpLccl_5U_7$Qv3SnV9_W@%K+t(=)SQmRIz}ayaA74bI1-6K%51n`@Knh}V3ATfyQDYUd&`6+DCzD#E352q=|;m7 zl%A>2l1g}DuiO@#*@XU=4cZ^F{|=V*f64v{`u;rww>s4KX^imUb(gZ`RL_OqN(M6qpAdZq1js)A z8cV}1FNab%WdUyq6$VDEpUqu|098;&&~M2OcE@}4Q>;io(jbtXV>hizU0j6#sp#MP zk~&+;c=sUilF}5QBFQ07?b!)|_lxUn7h4_D;p2_vn&X(GQ$;640>w|(V>EuVFr}sx z7fe3mx$i~iOmK9*S)Lg=aQN+`!t12g;H>mFl`PxjC@IS6lAM>*;nDLGr^@;MMY+jB zw)>Hh?jtFMKK9#r*@mKkL|cs*Lf3H%dMS8cVK~ZE! zWB2H>_<-^ZXWGF@lc#&|VZj(n0n4*STeH%?MCbMG%pA1x5<9ahz?%Mea79aLWas&> zH$O!bf)Q%RuaQ1dh)U(AgSoo*z6^Ed*Da_wm&zGcHCbfQjLd*{Fel%9E}xKn?Qd)G zoTS#>&XsD_Pb~!l^NUew>k$iM#SzF4wH6|t^FaM6ySSdoz*!GYLo4$jQ8|DxvOhIN zqh^yCQ;y4G+uw{$n8g-X$FckjS{5;6ck?--HvZC8yy)A2l~sj_;h_i%y;=cl%iYL{ z(9*HlcY^KX>2*n={uK2BF$JTB`*>aD)MY1nrUoDGI1Yi$BK40c=;8Rg@{QXRXsuby zo=?}Ugo7BDq@0i;0b^TNHy0l=?S^>aT)|D7KU(P>GW>hC3Z3=-05hie-7{FqWAf;3 z_e8s;ve@-z2&~RSpdh)g&9|O~$j25|=aw0dF^W`YI0&!3mpb~0x@TN3Ea=hbPfq%F zomlPf=&dE!svf>7FsDNRMY%H<4}sHfguNRZ)||}uZxEQ{Rn1J2wW1=^x|=tJ+i*?! z4ext{WyJa;+|^15aH-!LN(g> z@WsvteDf~<_jznnTtPHSM|t8+9sjna@KFbYFt}(ZAX}tui>hWmnM1?aJI@ z`{FhZJJIh>WvqL=<=a*gK|!XW?!~ObwfM~A*2fGjPtRF45aBdY_0-EyHR^M@(ABav z9-UV|8q}78%}IN9iQ{MPypH{DxSmlhzSaBmgPxOuiRK==9oG%2u98Ta2}Fu$pgFf@ zU*mzpg`ZF4Szfty!|g`w{U0d(n^6rHnHSrJcqco?w#_PZ7B3IhpW17lRD8>b87^ir z8L1E$QV$Rd+t>VR8k-$`12Omuu)?gCsq*#(rN&ZEAFD1kO`Sf@xm38gZLxN7(JPJW zx>8Q|;6Bt!@JyN`o5=07V3nugk8_&DigyC*X=V2b*Ql<`s-ye34-Kch#fH2Y{|p<( zG5F_{wW4iZ Wug#VxuSl^fdVG3`>CQcLX!!3l+Q$L_ literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_core/py_table_of_contents_core/images/maths_tools.jpg b/doc/py_tutorials/py_core/py_table_of_contents_core/images/maths_tools.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a7b264edacc7276fa5c3ce5c6a9bc74efe2865ea GIT binary patch literal 3195 zcmbW!c{J30`v>svm|-jxBU_4WS(A{pn2;rIBr!2F${udA?_G_Ye>d4-fBgUNJsCF+Bxo1-<`sSRVlxC*TM;f=7fmj{D*`qz#LH`W!?||6A5OxkICl@!*Q9}bCzy<(6S%mAghft?o|Bc6S5Um9p{b>QAy1DHwJA1@!2S-;ocMs2dUfw~$A)#U65s`@xl9E$W)6#Pv=jCIcJS`|J!OXl#1h+|o|&_(bXK`rO?=Kph;S4Uf>LXBabhneR4>|?R5 zvMT<@oES3ZfhU^xDR5xfPd`6z`oL2R+l|30e`SK=C;W_ ziH)Va(Xf=e(Z^`a-O|pH!^A0JC8lyl#j3VbRAvTsy zHTyUlzc?__oW&av*_4)9JHxh8(mwjB{!PXS%w-mkwpByl?$Fe29KGjm;CI6}ExErt z{KwfZg8gFwf_?>Suu9HXa-lvWr@8ho4&2K&K2G|R$)3TM6%;?oR{L43=f+M{Fx})8 zX8Kw3xs%&lNv-MX)EF^1cjhvAJFG|<>uYH^?4bYqG*rsaB$~44DYAL?ImyjGxSW}R zGqhvoSv@1K)VEXxw%rhNE?%D$9HAA3yCSHAgxqy&p|9sutNe~LmxoN;Ae3&i zZ(L^(yfmyLqM>m2PS043?1(bQ zG%So*cT^1a^B}7gG%@5m^56X-z#`IFky0-+i_3D#`rhy0CTcGH?yx~&UQ0MKgjrmL?BelSy3O(P#r54M zGV7fNPWXrbj#B)ncj!{ZDVy7xQCilt^mV&z^zF`zl3^wOR@z;?{ytSJm%bB6ujmB6 zTkPDkEbG!%J-II5i>}^-A+7W$F66ZwCO6wl*&w1m9eUbKk4xFgQ}07+FUt-#y5JFz zeHL&NZZ%SaEi4y=1QYCT;zezKrj6e$ud*mKM7#)R0S;(om1Q+`e#j&71yk_4#xDXs z{K>HdYnYZtL6jCwtG?C(Z6NXx8e>hylM|3-Y} zxD$3gcWYtVmb*%~PCQ+|fj+08VGgJ53$H2NN%C{sA%DU~9#e9;fXm#Q4lHTpRU1Bm(lu;NH9HXsX+L!XQJ;Dw?cNExagbp>g1s{sl-Lbbc6@Dj0~-4MLwN z_SAg+y|?^p&OALbBK!5nylht=Y1r`U&J;~(Jv`Aun_7##Svx{LxxO`<*BP zDbn^%?|m75w5yBx#Wv_~nIm!=#GCs4`7=Ya8A&+D7wAxoipac`U0rDUrLC6H2hk9TJz7iJ6~zSpF;ZE$bu#|MPIu^&d9tD+EYnm zJY618`QTSA9vvzo9X~IpIG+6DN{n#lUm#H%QE``!08}<@mR7Ch3far7hQA-GKv3T6hHg^0~^zLJQ>k z0@AupclDT4t7n|cc0L^ z-Dm?T*UUnR&uZ+1woD|gIJ}r_<5igR%uJ#{;EQthpH1&1ww9F6oGI<;8X~UmiZ}AZ z@G4#oUQL7ol_V99hSprAU{kL=pl0|C>~ZmS7{cAxlbuko6@C-0N;jqJ*6PTTCe2B= zRTgV({)lgri3~eX8ZhW0R($cYwX#!Qj!8xt^(;yZY&-79zT(YPKVK<&Fe_=wK<}%j zI-AkT0NhHA5qaw{rs|Q2y#$H{m@mxNu9Nbj#5Dx*?dkG0U>AkOndU6F)mKE6XsKLE z{jLsQK766J+FX%w(`E<#V5W#EP$bxRe>2Fu6(!2tR7q;LsKb=sIY?ju#HVRVv7S!J z?>W*dhn_RO=pmls1cgINnOm+7$p^vXcdSC1b=H=YsU-d^^kh5cnc(mDT5YLp2o`t8WJkC2)q|}E?H7BTL)EJvTe!*^T zHLqf=BCXZl_?IvKc_z9stAqt?4jmxsGNc>rGVE@7f=r-}wW!S>vo?*M?DxtAY>eG( HSR?-csB{g% literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_core/py_table_of_contents_core/images/pixel_ops.jpg b/doc/py_tutorials/py_core/py_table_of_contents_core/images/pixel_ops.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a29ca44efb2259e0e159fa9058a6d6b3b8c6dd2 GIT binary patch literal 4163 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 WF#{>a=fvpHvo+oX;ghJeZ~p?_$MEI= literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_core/py_table_of_contents_core/images/speed.jpg b/doc/py_tutorials/py_core/py_table_of_contents_core/images/speed.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fcf65aab3ee930e62c23c7c2607225ff40973082 GIT binary patch literal 2957 zcmbW!cTm$?76=TJKU7(HME*nmO801XTThJmPE zfWXg}hFqVOllMBwxBPw=LTtZS_LGh}RvWkxGHH@CVfuZ>= z3rj0&tc{bii>sTvhi4EjI3zSIJmUU?xcG+&j}p@}GPAOC9_Qwj;t6F>iO)J?;OpVh@yWN-UoH>;{)=^X z{{{OG7wpVM1A%}cbiZ66n$WWYhC!f0vb5*5ZqhjfTo6XZ(6ei&l~liC5Ro(6y~4SAcl zl6u!(Br*xUa$$N0{^LQ4lSz(d(&kZ>=tkJ|Al9x5$}(}I>EcCorNh!i*KlZ0%nO^9 zp|ZJRKGXEBD0_znqM@(cqY2-tlCeP_k0x6kH8TkCv~H3-SXFSr6l zKK2Ah)B4|O6|00^;S7hO2V2Nd+S%KVglRiSrOEQxBJb z#qNWhbcy07JKEkIr$E)1{i2YC{GhzM3}SO>Vh?=~5%3gCf9^APA01q6f&X4avWjK#_}AyNSxsyuxhA2k znT2;x4~chXOoQY-@3C>^s7u=Na>Qb!bd-)3%xk#Rip*N4A9_oXcrLG8N3||X)BQwkjaRwcJo~LP6wkFGLwon1C2=6^THD*Kwk0RXO1jJ5y z=jlf#axAH$nDAX;4OlBK9?Vg6y`}3UfShBp-pdcHgX^QNij# zy%y^Y+A;la!3`}BjYs_)n%UZxSPhi;0*+hX?WOf^cwMxsr|ijM#+T!+j7EjKny<+@ z355t`Cb4OGCr6l@;u$alx!&RY)r6t4JN2XyZnS(LOS1Yk=k$(c52fQu!{%{w>+yL^ zo2wDw!&J>+SKF86E3us$O}$ZBYZ=y_GNwqBt#O;8wCTzvm1x=g6o$HPwRKJT>P)p z4pMj%4ri&rGzp#X9Ql!>DPCr4X5mAApRD-3`LSl_{^nNw!i!hJx6Sp9 z^l`%H+Z=Ts5F;L(0O@ATZ&u^UcyD27nDVQgJCURl&e1&03Xvuq%I&*6hiqZwh)?NW zM1LixZXn#X=-J#xUPk}wc3QyEli&q?{K@pkR?OT&`O!1UHE2&s?(;H|U}k;y!4-+KBW_ocT19 z`PNT7i2`x@lCF0^1wLEp1de!eR>KMAExv!`q+-xNEK(vDn^pz81N$Xd41B|tmPHT& z^GbZO-A3|6ugxvgx=~&IxRjarlhsGFgBhZ~Bl7RZM(cd7RJ+QyvKAIJe-*ZV*fgP7=S^%#4v!Ika$d|rjzJ+}cCL*HyEM0yuIY-HlqUH+m z;IBkmy`x7-2Y}`x*UWRxAD6T_;qdM28QPoxpu|7v!Bab?iAOH57~ibjGby?(zE6oO z$cKm^C1XPoI4H)Q7I(Lb_zBBt8E7o!qW!Ej^qec%#*?$Lyln=T$@0?Fw6e_Rqc|wF zXS1@M^7`3EF^(MC9mUZwP2$Fe3@Yn^Q@seN0IbdGR(69!i5r&5LEkPml9le%4cpj;%0`#hYY3ayNl`>P*!sGYeYY67Lj>r$6K{JJ7Cc-E!>f^oD<6`LMog z7s*iWv~9VxazljYHqTnmkDVuaI2duPKzYi&Jboqn)BE-P-p97& ztsoQj#jzOcCxcIGorA{m>Jbl4M^ITkxx{|qJ|Fx!LQ$p@@-$|8uTp)|yKHx8BKzi` z)3_h6jA5sL3>9da-zqFxnZ{F=D3#p8?eTt%&%81EeZ#CI-Q}|37InSh(!=X(I9oY| zk4KnCS5iLAKa6SKqC3Gm*z8oyh}6^%+Q(|~o?7^T-v3?NeX#q9E6P+2S1H*fN_KHo Vc3er1DD-%Rh21e8BKK0?{{vP2TVntK literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_core/py_table_of_contents_core/py_table_of_contents_core.rst b/doc/py_tutorials/py_core/py_table_of_contents_core/py_table_of_contents_core.rst new file mode 100644 index 000000000..0cbbc2b03 --- /dev/null +++ b/doc/py_tutorials/py_core/py_table_of_contents_core/py_table_of_contents_core.rst @@ -0,0 +1,75 @@ +.. _PY_Table-Of-Content-Core: + +Core Operations +----------------------------------------------------------- + + +* :ref:`Basic_Ops` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |core_1| Learn to read and edit pixel values, working with image ROI and other basic operations. + + =========== ====================================================== + + .. |core_1| image:: images/pixel_ops.jpg + :height: 90pt + :width: 90pt + +* :ref:`Image_Arithmetics` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |core_2| Perform arithmetic operations on images + + =========== ====================================================== + + .. |core_2| image:: images/image_arithmetic.jpg + :height: 90pt + :width: 90pt + +* :ref:`Optimization_Techniques` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |core_4| Getting a solution is important. But getting it in the fastest way is more important. Learn to check the speed of your code, optimize the code etc. + + =========== ====================================================== + + .. |core_4| image:: images/speed.jpg + :height: 90pt + :width: 90pt + +* :ref:`Mathematical_Tools` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |core_5| Learn some of the mathematical tools provided by OpenCV like PCA, SVD etc. + + =========== ====================================================== + + .. |core_5| image:: images/maths_tools.jpg + :height: 90pt + :width: 90pt + + +.. raw:: latex + + \pagebreak + +.. We use a custom table of content format and as the table of content only informs Sphinx about the hierarchy of the files, no need to show it. +.. toctree:: + :hidden: + + ../py_basic_ops/py_basic_ops + ../py_image_arithmetics/py_image_arithmetics + ../py_optimization/py_optimization + ../py_maths_tools/py_maths_tools diff --git a/doc/py_tutorials/py_feature2d/py_brief/py_brief.rst b/doc/py_tutorials/py_feature2d/py_brief/py_brief.rst new file mode 100644 index 000000000..e179d9c6c --- /dev/null +++ b/doc/py_tutorials/py_feature2d/py_brief/py_brief.rst @@ -0,0 +1,63 @@ +.. _BRIEF: + + +BRIEF (Binary Robust Independent Elementary Features) +*********************************************************** + +Goal +======= +In this chapter + * We will see the basics of BRIEF algorithm + + +Theory +============= + +We know SIFT uses 128-dim vector for descriptors. Since it is using floating point numbers, it takes basically 512 bytes. Similarly SURF also takes minimum of 256 bytes (for 64-dim). Creating such a vector for thousands of features takes a lot of memory which are not feasible for resouce-constraint applications especially for embedded systems. Larger the memory, longer the time it takes for matching. + +But all these dimensions may not be needed for actual matching. We can compress it using several methods like PCA, LDA etc. Even other methods like hashing using LSH (Locality Sensitive Hashing) is used to convert these SIFT descriptors in floating point numbers to binary strings. These binary strings are used to match features using Hamming distance. This provides better speed-up because finding hamming distance is just applying XOR and bit count, which are very fast in modern CPUs with SSE instructions. But here, we need to find the descriptors first, then only we can apply hashing, which doesn't solve our initial problem on memory. + +BRIEF comes into picture at this moment. It provides a shortcut to find the binary strings directly without finding descriptors. It takes smoothened image patch and selects a set of :math:`n_d` (x,y) location pairs in an unique way (explained in paper). Then some pixel intensity comparisons are done on these location pairs. For eg, let first location pairs be :math:`p` and :math:`q`. If :math:`I(p) < I(q)`, then its result is 1, else it is 0. This is applied for all the :math:`n_d` location pairs to get a :math:`n_d`-dimensional bitstring. + +This :math:`n_d` can be 128, 256 or 512. OpenCV supports all of these, but by default, it would be 256 (OpenCV represents it in bytes. So the values will be 16, 32 and 64). So once you get this, you can use Hamming Distance to match these descriptors. + +One important point is that BRIEF is a feature descriptor, it doesn't provide any method to find the features. So you will have to use any other feature detectors like SIFT, SURF etc. The paper recommends to use CenSurE which is a fast detector and BRIEF works even slightly better for CenSurE points than for SURF points. + +In short, BRIEF is a faster method feature descriptor calculation and matching. It also provides high recognition rate unless there is large in-plane rotation. + +BRIEF in OpenCV +===================== + +Below code shows the computation of BRIEF descriptors with the help of CenSurE detector. (CenSurE detector is called STAR detector in OpenCV) +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img = cv2.imread('simple.jpg',0) + + # Initiate STAR detector + star = cv2.FeatureDetector_create("STAR") + + # Initiate BRIEF extractor + brief = cv2.DescriptorExtractor_create("BRIEF") + + # find the keypoints with STAR + kp = star.detect(img,None) + + # compute the descriptors with BRIEF + kp, des = brief.compute(img, kp) + + print brief.getInt('bytes') + print des.shape + +The function ``brief.getInt('bytes')`` gives the :math:`n_d` size used in bytes. By default it is 32. Next one is matching, which will be done in another chapter. + + +Additional Resources +========================== + +#. Michael Calonder, Vincent Lepetit, Christoph Strecha, and Pascal Fua, "BRIEF: Binary Robust Independent Elementary Features", 11th European Conference on Computer Vision (ECCV), Heraklion, Crete. LNCS Springer, September 2010. + +#. LSH (Locality Sensitive Hasing) at wikipedia. diff --git a/doc/py_tutorials/py_feature2d/py_fast/images/fast_eqns.jpg b/doc/py_tutorials/py_feature2d/py_fast/images/fast_eqns.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e72ada07527ef7ddb55cbe3308100a105d963a46 GIT binary patch literal 6315 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 G&;1+mcv?{a literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_fast/images/fast_kp.jpg b/doc/py_tutorials/py_feature2d/py_fast/images/fast_kp.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db2b1e864e02dabdf41bac9f051db52e008e20d9 GIT binary patch literal 25609 zcmbTdWl&sEvo<<-Ab4;O8Z@|T5F7UpndsI zG^GC`!2b{uG72ghI>swZtk*9BP<#L~5()}3Dhe7JD(Z_gm+KEsqTP8})A( z^bSP4ezDoF7(P^Y5o=7IGV*^AtfWHU}9!@$I8YpASfg(BKq-@tem`pqLQYT zwvMizKG4+6+`{q)$jZst#nsK-!!zJlU{G*KXjoi)LSj<#@08S>+`RmP!lL4mn%X*O zeM4hYb9YZ~AFO|1aA<0JW_Aufzp%KmxwXBsyZ3kh;OzY3^6L8L_U`^axR3xS{|)Qq z{NKR-U$_Wfa3Q0jqM%~@2Nx2u+Y6%*prXCyK_`?^$N1*(hMw2&714*-?CLH|20o2b z;_r@=SR{=68%$^af%ad>{&&Fq|9>I-zrg+c20q&8*lz;#rE2}Jk zNd14w6s$P^Ev%t2fuyV`3*aPDmqz>FFnSmcfa!k(F=ff~{~(9G`-4WLfdvGxr=QV= z=1sk)tEmkl=PHQIAMFh!P*=c+!DL}h*~FvTPsQm?Ixm}6#z)sAv{i7L_BcXBE3JFW zin^z|WIk|_{$8Le{sMWm+q~bUkzfgYpZE`81m6v{eW2b=+*)DLm^N*ST_ndecOMv= z(~u#jmXin8d7I{;^p5zh3+znvQMa<=G^0kM6KmPCBGNAmuc!={{A>OS)E5@`cAMwB zx=Ec1Y)p`8I0vllxa!Xq*h;GWOSMVcPeG zmSJ<56i|f=n5f&6_*&BXqI_8v#eVLeglD4ZEr_^tn8{FU=CINnmy3H$`GGMM#-yWj z{z+u}AHePS@+9?gm=k$w99wfF#+Oq2JNI)}xt%ZK`0zedEb$62bZ$=Bfy2{irBXbr{jR5133*AC9m)8hm7APaDZO#^ z)qbYDvGisOS7E%du^1)?wVRUaKfpGK+=)FEh!K5!;u6m1P(;quoRB}3KKV{rdoRYJ zB}#;GPvGF)!C!JRd{2BZY*yQ_<|ouh%s-1jRl|?HCI7f3?}9MDn6yfT=G({vgLC#r?#3H_G{6%8Q&7m-G|s zA}h=nU*P>K@aO-Sg^ zv&(KfchY!&{Tbyf9`fUaC>7CocBL9}@s~=h`6A=2M;tK|Bb%8}qk^0(Q9Qt-Zg8)s zO|R!6$fiiYBbhb$_sjT#AfhzvC6e4z7?1U){{Tn=+d$Q5^X!GEG_`1}_@wWSV-UsC zEs@=-el-Qlw47w-qdfV!4WFVFnB9ag68W7#n_m6#!kNwGE8n{YFI zcGBgQrazK61=uHV3Xg3u!N=l*x$|SPW84c z^c@%RWjmubo;FCN3=G?m29CB{Y#3;I&YO>_ii$rXg-w5MX^CaH$ioc8q%CIo3r;bKzGquu8!s@H zM-AW^j!~pJ5FwtnGN!Jb*(S`J298#BpBr#%oMjd*Ad-|xnWcB z(Vr1AOitDvaLH2cl|u7|6E>q~HF(k1aA7w*t)?j&m##f|T<=ThTrP(s5SB7=BacCA zqLk9=W-AI5xrchEZ5(M_D9?S38?uP@3Ut8;LcL^Y^Xe4)$rvT;xYxu!1eRknoJ?A| zJl1B*oFonIHCS+Qi&?FEQ$8Og!7`)~P2$j4FJuP)Aw?u~D=@X40cAh02JStF) z&u6mHp@nL$AftR0RDrEQqI%##y#1a1LrFA;jUA%q(e`mzF?Xh@jQV|_V8c4&e3+rL z1deSf`WG3p>k5s)oUnHQ{)B=TrTnO@@B{F2iTrbBy4CWckSj0p5l7$qlePP)el4FUK9m!eA zsYZfr#|z2qz*-85jyFRZGl8dem5^#>qPD%Y>jF>_?v zR9g>voA{Ao8z8?2R)`H`PNZxO|Wdh%76c*~e=>OJKbPILGBgqpsK zMoN_qvL8d~)?eMQT`JXBJ2m>Wb}JeGH2ebu|Lw?=RTM7A@-$jmt=@divO-~~;?QK< zuxFKo0tPr@&^ezN!?V35YNuAXxC-Mu#HZ~i0zy8ejIFo1-$-~=5}tbYc(LYamKsnUx(=~rhj5gA=h$Z1)}t;dE-iqOhQudR2kMZJJm!40V~;wzO?=4KN&xe7(2NyTh( z6KToi{vBjTHCJQj!>w1J=;(7LnEaf&f(fgBGCISt6PxO4Pf8~B(%sv`H^)eYdM9Ff z0oal3An6ft(|Hnc0lfDK+>i>I)3Ab1%fU4X%{o$0lo@EUKSVs)OF|PX-UmGz{8>8y z;ua~LC~_T%!va|rJ7W$y2@+8)3(JjM{CnrLSv4H;8w4^cec7EC{{eWo%*s{^u8YqI zVMF-V>tHxRsF|#N3sE{=>6=dEKQ*_Ne@q&~-W~T2Wn$ptQ`O{agN+DL|9nM0ESw$586jt^S({&)+&sFd<0?E22wFm;%^ zJFOZi+v~4w!eL7HPRiYH)cK1F^=zvyevD}>N_PJj@SfF|4F0^iXuDg9IziRllf}2x zW+r2)wtuM2fkS5NG#H+yxOjzARpj0W3e-W}(tl+TN&@^W#{%Y;z*y4VL4-8LNA+k| zK>?hi-am2WeU`q%sw#{TCH5)+hsESx9Gy2{2RjE#Dz_Jl{YElQW4sn8R6WiT^&2I2 z)UqKON@jb~H rKTC*K>s7*of`pXv$=saEM_KzRuO_oM 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_fast/py_fast.rst b/doc/py_tutorials/py_feature2d/py_fast/py_fast.rst new file mode 100644 index 000000000..eea0dae3b --- /dev/null +++ b/doc/py_tutorials/py_feature2d/py_fast/py_fast.rst @@ -0,0 +1,136 @@ +.. _FAST: + +FAST Algorithm for Corner Detection +************************************* + +Goal +======= + +In this chapter, + * We will understand the basics of FAST algorithm + * We will find corners using OpenCV functionalities for FAST algorithm. + + +Theory +========= + +We saw several feature detectors and many of them are really good. But when looking from a real-time application point of view, they are not fast enough. One best example would be SLAM (Simultaneous Localization and Mapping) mobile robot which have limited computational resources. + +As a solution to this, FAST (Features from Accelerated Segment Test) algorithm was proposed by Edward Rosten and Tom Drummond in their paper "Machine learning for high-speed corner detection" in 2006 (Later revised it in 2010). A basic summary of the algorithm is presented below. Refer original paper for more details (All the images are taken from original paper). + + +Feature Detection using FAST +------------------------------ + +1. Select a pixel :math:`p` in the image which is to be identified as an interest point or not. Let its intensity be :math:`I_p`. +2. Select appropriate threshold value :math:`t`. +3. Consider a circle of 16 pixels around the pixel under test. (See the image below) + + .. image:: images/fast_speedtest.jpg + :alt: A corner in the image + :align: center + +4. Now the pixel :math:`p` is a corner if there exists a set of :math:`n` contiguous pixels in the circle (of 16 pixels) which are all brighter than :math:`I_p + t`, or all darker than :math:`I_p − t`. (Shown as white dash lines in the above image). :math:`n` was chosen to be 12. +5. A **high-speed test** was proposed to exclude a large number of non-corners. This test examines only the four pixels at 1, 9, 5 and 13 (First 1 and 9 are tested if they are too brighter or darker. If so, then checks 5 and 13). If :math:`p` is a corner, then at least three of these must all be brighter than :math:`I_p + t` or darker than :math:`I_p − t`. If neither of these is the case, then :math:`p` cannot be a corner. The full segment test criterion can then be applied to the passed candidates by examining all pixels in the circle. This detector in itself exhibits high performance, but there are several weaknesses: + + * It does not reject as many candidates for n < 12. + * The choice of pixels is not optimal because its efficiency depends on ordering of the questions and distribution of corner appearances. + * Results of high-speed tests are thrown away. + * Multiple features are detected adjacent to one another. + +First 3 points are addressed with a machine learning approach. Last one is addressed using non-maximal suppression. + + +Machine Learning a Corner Detector +------------------------------------ + +1. Select a set of images for training (preferably from the target application domain) +2. Run FAST algorithm in every images to find feature points. +3. For every feature point, store the 16 pixels around it as a vector. Do it for all the images to get feature vector :math:`P`. +4. Each pixel (say :math:`x`) in these 16 pixels can have one of the following three states: + + .. image:: images/fast_eqns.jpg + :alt: FAST equation + :align: center + +5. Depending on these states, the feature vector :math:`P` is subdivided into 3 subsets, :math:`P_d`, :math:`P_s`, :math:`P_b`. +6. Define a new boolean variable, :math:`K_p`, which is true if :math:`p` is a corner and false otherwise. +7. Use the ID3 algorithm (decision tree classifier) to query each subset using the variable :math:`K_p` for the knowledge about the true class. It selects the :math:`x` which yields the most information about whether the candidate pixel is a corner, measured by the entropy of :math:`K_p`. +8. This is recursively applied to all the subsets until its entropy is zero. +9. The decision tree so created is used for fast detection in other images. + + +Non-maximal Suppression +--------------------------- + +Detecting multiple interest points in adjacent locations is another problem. It is solved by using Non-maximum Suppression. + +1. Compute a score function, :math:`V` for all the detected feature points. :math:`V` is the sum of absolute difference between :math:`p` and 16 surrounding pixels values. +2. Consider two adjacent keypoints and compute their :math:`V` values. +3. Discard the one with lower :math:`V` value. + + +Summary +----------- + +It is several times faster than other existing corner detectors. + +But it is not robust to high levels of noise. It is dependant on a threshold. + + +FAST Feature Detector in OpenCV +================================== + +It is called as any other feature detector in OpenCV. If you want, you can specify the threshold, whether non-maximum suppression to be applied or not, the neighborhood to be used etc. + +For the neighborhood, three flags are defined, ``cv2.FAST_FEATURE_DETECTOR_TYPE_5_8``, ``cv2.FAST_FEATURE_DETECTOR_TYPE_7_12`` and ``cv2.FAST_FEATURE_DETECTOR_TYPE_9_16``. Below is a simple code on how to detect and draw the FAST feature points. +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img = cv2.imread('simple.jpg',0) + + # Initiate FAST object with default values + fast = cv2.FastFeatureDetector() + + # find and draw the keypoints + kp = fast.detect(img,None) + img2 = cv2.drawKeypoints(img, kp, color=(255,0,0)) + + # Print all default params + print "Threshold: ", fast.getInt('threshold') + print "nonmaxSuppression: ", fast.getBool('nonmaxSuppression') + print "neighborhood: ", fast.getInt('type') + print "Total Keypoints with nonmaxSuppression: ", len(kp) + + cv2.imwrite('fast_true.png',img2) + + # Disable nonmaxSuppression + fast.setBool('nonmaxSuppression',0) + kp = fast.detect(img,None) + + print "Total Keypoints without nonmaxSuppression: ", len(kp) + + img3 = cv2.drawKeypoints(img, kp, color=(255,0,0)) + + cv2.imwrite('fast_false.png',img3) + +See the results. First image shows FAST with nonmaxSuppression and second one without nonmaxSuppression: + + .. image:: images/fast_kp.jpg + :alt: FAST Keypoints + :align: center + + +Additional Resources +========================= + +#. Edward Rosten and Tom Drummond, “Machine learning for high speed corner detection” in 9th European Conference on Computer Vision, vol. 1, 2006, pp. 430–443. + +#. Edward Rosten, Reid Porter, and Tom Drummond, "Faster and better: a machine learning approach to corner detection" in IEEE Trans. Pattern Analysis and Machine Intelligence, 2010, vol 32, pp. 105-119. + + +Exercises +============ diff --git a/doc/py_tutorials/py_feature2d/py_feature_homography/images/homography_findobj.jpg b/doc/py_tutorials/py_feature2d/py_feature_homography/images/homography_findobj.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94df8497f2599b6214c57fa1b07b26e46207e825 GIT binary patch literal 31937 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: + src_pts = np.float32([ kp1[m.queryIdx].pt for m in good ]).reshape(-1,1,2) + dst_pts = np.float32([ kp2[m.trainIdx].pt for m in good ]).reshape(-1,1,2) + + M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC,5.0) + matchesMask = mask.ravel().tolist() + + h,w = img1.shape + pts = np.float32([ [0,0],[0,h-1],[w-1,h-1],[w-1,0] ]).reshape(-1,1,2) + dst = cv2.perspectiveTransform(pts,M) + + img2 = cv2.polylines(img2,[np.int32(dst)],True,255,3, cv2.LINE_AA) + + else: + print "Not enough matches are found - %d/%d" % (len(good),MIN_MATCH_COUNT) + matchesMask = None + + +Finally we draw our inliers (if successfully found the object) or matching keypoints (if failed). +:: + + draw_params = dict(matchColor = (0,255,0), # draw matches in green color + singlePointColor = None, + matchesMask = matchesMask, # draw only inliers + flags = 2) + + img3 = cv2.drawMatches(img1,kp1,img2,kp2,good,None,**draw_params) + + plt.imshow(img3, 'gray'),plt.show() + + +See the result below. Object is marked in white color in cluttered image: + + .. image:: images/homography_findobj.jpg + :alt: Finding object with feature homography + :align: center + + +Additional Resources +============================ + + +Exercises +================== diff --git a/doc/py_tutorials/py_feature2d/py_features_harris/images/harris_region.jpg b/doc/py_tutorials/py_feature2d/py_features_harris/images/harris_region.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0ec8d6f9279717b9680af70c7130553736e70d6 GIT binary patch literal 17497 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

G0un|WD-SO%bxV?5Zt!%}f8fbd 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 BwyXdE literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_features_harris/images/subpixel3.png b/doc/py_tutorials/py_feature2d/py_features_harris/images/subpixel3.png new file mode 100644 index 0000000000000000000000000000000000000000..66aedf504e5674f92a954f75a0bada3d6885d7c9 GIT binary patch literal 16243 zcmcJ0Wmr~gx9-G1loBaLLP154QUPgD8l<~JP#UEh6cnU8rMp8)Qc;wUdPzY-q*J=# zjOp6@+k2gV=g0Z3^Yghls9!V!UV( zC1aK*|F$LEM8(iNtorbVRQ}h(SE}Y8@k`RM{IN;x75gqR^ zhq-y~-RFpVJhj;FSr)kXNiGBLGaKVCp*A+W^h*R8f$Z!QL6}<|q+_jYML}<>1F3%t zz4G>!%&*^cKU%IDR~#(Tc}+z^lHtUE`}SNJV*b)LBQU?|UvHtNzgvXMwfLp_9Hm4Y zCov5T>oLDs-);ZEKoSQVn|t6fsO-hL?Zw!>1gk8UyPQ<*U zFA6=VvuGKQCP6++_zZ^Kvz(E7S(3RE=h14dxx}nh8Tv{8;`Yna=W=p$CF^ECoukS4 z`0=B|f$?&JZgKW%FTq~V$AR8jE4h_EpH*i<)*}mf}XlV`H4}57n zQug;<4AfLr{rA&FL>d|z{1HuEU6z5=Q}R=C9Z&CPW@qD$bajPf$tAN`czSx)?9C*Q zHdIzV7&p47U};%c(v>VICn_o`A`%%EX3$=!f0=eNmH#tapcz-_J-p93KDHT;6G}N| zoo{M&>6>nm^kzzmGy2kDuanN_AFm=D(9vdl;b3kxqhtfZt|qhL1)ElE#L zH^pQ~!VaRMjH@=-k_ZWx|6bzDNc2YG__V3TXYO)8Ya2QZXRK&C_U*VYSIM8!R9M*C zsRPcz$*H>6-6%Hyld$Xm@{L)ED>1$s(SiA&Uq*(>njZ{n-BE91D?0VBxBr*DEdFCQ z|1wvCe|y0Hx@mBSc1*3K_4?Y{^;6b_#@bhP#oMZHq^73YEe+khaQ=Mi#DqTWr0z!G zB6vVx`$ZZWxwyEv&1Q1F?jP@;G4Swco>9P<%zdNr%;2`2kRhg=NU7W%DF+3a-dhP^kPiM-+-9v*!|LlR=?VNW~XNnW{f#jc&XDzvz` zc=Eopvvaw@XY9_*8Y0iVc0Ip2L)Xo>Fsw|dkE*|=0=8xKdN`#AuHzK;OO}pbQN8j9nYxB zX0>(*9w_PRQWxsh$D5g%ExEo7 z)R}+~*?~hynEjTRUeU~qQ6`>U@(c%U+QNd_{{CVy`u2fBEpbv(Qcju&TwJjW3kx|7 z4M~q4Ju2F5@bW_9*$hsBm-kM!Mzn&X`}u9U@Xy=vXqFnDE!3(Cetb*mfHl1I4r-`= zHIA#YN?DIn;i{!%WyyrC(*iy(bqO2<+VN1q2mZz-Zg_J}Wo0yc=QcZgUsjihm>359 zW&Y(k>Xa{EMAkNxvSoYPqVCMs?~J9x{ZzHneDzR&mHxvb>-V>ifaI$|Vy{QLyM@F< zs7W2*NbFaBY7EuBa#Zm6=4L>jD4kYn{N(k~(av~pmP~?=j+WNQO5?XXzbap{v$4sq z(d0k*7ED4+Ot;k1BH4VCnMJqcvOw~at&#o zlDD*EULLF08Zt02hzt$AwiMzfn09b_m3+Iv_WfMzeYp#+TMPZ=X8nu?$-IuTcdr-| z{;b^7fjx+@%92PZf;3Q=uBs#wBwjFy|IyzAN>+sJ0ml5CWrYz_rYqT9IxX_x$i+> z%*U6J*Mr1_)5SxqUbGN+aas-=?Ob=&a-*ZIEjnFLP>_)+9fQGSN}GQ4!m=CGaqJm& z9GBsD-Ol)6JB#`G!PfNT_$V?aM!Y?SHG6&CrZzF*!S;5R6iowVq^wL41$9-+TcpqE+N%uglW}0tA|zm7Y9F z|LpdMliFqOI&ID6%g?^YUiVm8T`g9p`KbzlU>-KvaWkfxV%hEkJpluKk!7qUSeQiV0YOxX|DN> zIuCua+asRDU^r+Ie0=;%{PjL`NfKI37Mw~73Pj+CJ-aVRLp0QEEDfenlTAXwpqG7@BjMQB-`@lFmIINfVSnLHRm%~$bX;3o+Z>#xe_t?OczF2j`}ZRNW5|Lh ziP)`4ZYNkbq>|oI?MAn1Z*Q;YZb$F3y(B3@eiEXYy>@tXM9SThlXJUfxpKsZikey$ za#Zc)i=Cw(>FN(^tVVhE2OE!XS|AQ5h7Ow7`pqi*?UP@;cwq;3fXmCyt{m2dhmW7h zqEmwdryPjFjOE3}{8*WyygbDz(N4fLaE$(XUfGu*b()%*G86oOLy$p3emnjT%bT2> z(NfaVxdjD}*A8MN!J#3h*kF;K`!ze8jT5O;>yTMcz+@mUD#}1z7QcbUDmVb2BQX4) zs&S9S%g;PNnF_no(9kr$S^zB5Ll?qFi^40wqUC!|XqMvegcaCLwGbK5aNGD0Q1j(r z%m+o%d*lrb(}vmw+;*Qg-%DK{sS2oH0zb5K^5_XuFKUk}dRRQz8_!{G(h<)QLn<#R zCzlOIz>+d){5-f%rex`+oTOwb+#F-l7(VuCG(14)c0bx0q>g$Y5k_Z;3s@lS=TGgn zjt&(P`T4PWUgKxadcmGL&nnj;1Q{%kwY4c>vuLInb=&BO$!jK7Fg4AMy**rF@Y#5a zg8!_V8*Tlikt*wKSY2qvYw^B`u7 z&x*2#wL<1COBPn)V5*pi2v?sPtt&PrScH8iJeR*XlOUf*yR1U9xke#KEPYq_9z~Ec z*eXTP8w3r)QPI(tdYTh7AuAgj8=vuFr@&WHRmH^JfA(dTRl8bfdU|?tBbqXo_m_;Y zgVu{JdQ3FiWxR~ud5P>^9aW*5%*;U;45r#k>T0)HMPKUYO!dhpY!{Dq8e_)vIbt5! zy*U1|pZeKFaYSM0LFkP3J@?>U`Kg!~nSaHZ?}qMRJIW$4;Kfp6`JX&a%_5 zvj*P?uRI#KDun{zp%R0pu`=U;C+{kotX?W>Wo8ltuuR`gyX}AcXM)CO)Q!kOUq9t? z4S0IZ^IxanMG|$oa0B#mNy9jGANOU;(HNY=#%9!g@Y<*QZ2t1puMWqlGz6?YPpx?z zS000p@uFECl46EQ(2JSxSN0D#x=<+8us3sc4C@Kq3fGT5UGORiZf@?)pSE2L7jp0@ z*!{?u)P-0Zc4^7wUnn@46o-HEJ{O=P`uPpMlAGnz%zNiBO`n_VudPQm83A#k}CjUPuSky}10}GIANrzwpm0 zqla{SxYrcy=O>T1jF0V|meUC+nSq{Od?@0UOd5O^cVuu-t<+IaKtNX^JGG`}cqO9R z0T)t+*xi?gN2}4gA%TGzh2P^YS)!7zYFMnN}_ieK0aU2I3 zH(609EWOl8mMHYCU_Pt3__{Qa$388=s%9Q@m4d>=zkjOdSBr!uuhqK}LWpSUPiFmO zy$0|ox#XD?YJR=BN;2pG4pS;(x-rwiXXJQo>{!I*W~KGGEFs??1UwsVN&U@n02%Y- zDMncz-|fZ;&=VSuw~C!xRt*0Tn=U$;VUe~Ih?&>!Evg*^-v1>eMc!^_Ia;FYCJC!nMkn zBmwvM3l}b+i4ySFXpuuU{p4HR^~9IFB=V(w^aMCK@_me)2_61I!$U(k5{oD+I;IB1 zO7gM-1cVpVkWfTB`-xmvmmNgj|0t*)%FAPPSuCvb;Rl=<&*xlLQlVM6{%U{wrpwHg z(ycq;e&L1d1s&v@$$ZY?+bg4YmZ*3gx*f;e>6gHH^*BOrZOWv$A8ZpL`-^%fQpNS# z@uQ8om+hVQU%82YKCArB`zX8kCypQpB{jQ2yG!r86lE-#nbk|YY8;jsf876i3Qm|% z8Y>FmD8)S^9A@q6(9U<q%{3YDtTA%e$TC@HbAwFPu4UzwnbFBryyt#&)5?D?-pv^8!- zM}R3!#_F6ejMS`aZ0Kt!D5MU_75A8sn0|yC!{9&od2J~?{8F=no$EvidT}Vc1H{oJ zm&7Nj=dqXR#Lvj+?{T!KhdTmz3V>Z2wW*}!TPJ>6+Q~9%*#UQ*rluy6n{xoN=YTSm z8?}b39x<`7WI@8$thBh&4+s(kEr6P{Z&R1r&dRz#b~ObapdBQBitopix)GUtX=i}u zlf4t`)S{xIepW@qzs_W1XMcCsuZKSDY5`rvR}0PnAt}4NpAP!f^v>5>k2l1e#mw-> z7A%Hr&-Hjih+|p;TnlPQL`i}pDbt-h>0ovF*ow4iaCtFbgQ=t)NA1bCmPcYx$~Heg zzd7_Ir037C&-31d0x7R?$uZ$KrA^i*oBeOO20r;UE!UaOe^$9%llkV&n>}OouJtZ9 z1NpWY1BYuNo*BgSvhtvhb;RBGMGqc;klk#eBPNo(w^B$-uTiG2~wD(6>J;Y%z%Cj@2^&;H7q&z$&G(-dP#loJp|804%R_ar%w3`?k-X z%W;L0S+_2hj8*qB>IZ7N&aZFD#EXcC086soh_+mmytPRAOi4*8VW8rayju_F2?m9^ z%wxerM^mtNJv}*CyZq1qsSdzfl97Af-rl6#-J`XRy`YV-Ecy7Hq2RX3C?O^$CVlyU ziK#$Gnk&ik*!eGCpyrQ{X3>!XuAx%r0SbuA%MYHP3qA@v9-r-fUgbp!c_dDo;Kdtc5!A{I_xU!SUcwko6t#|=<9uQ3fR;qs! z)Bq_*>3{8#J7_tP2?^2xB9uHl(N_0m^vZf>{v`4b&h$7DcciHwhDER20s z`x$p#C*;AHlQ%XY^&0vRT0OMKunagT5Dxb3o03An}L zVV~Bq?cm55T$C&xjA%7V3k|*K@8_4|=ZAw?+_KwV(pbP`;@Zz+Uc+-#f*$W6jG$sT zBvTnk)M+#xyDvR$NMv+0 z2BfWdAQhRz!q$wsI^})QWZOc19h0*M5IP{XcX$ zc+eL8GpGWnH?n&iIx(`cX5W4CRld>V$OJ&FF8?WSyuIDs6k%V2N1(pm@z|fIPrd)F z^J9D>ujAx=b~2fiq@)6+Tz-F3SC^bgcgjNvX=$bDCvY(Ylw1h1J2HMeFw^Dx<_+!r z`%09j5um|g2?+rZgrz>Lu4I)y`F0B7v>3WJN^U&}VvM|&7A_LYW1qLX2b2LpR_iu` z?P!eO`feA>gB!w^GeCWJ+3XRYAJDS4?43nj66iO((;t151m=KP0Yaq7%FhpWn{x^% zM+Gw!s(<$+vhW@a)(o3N4pYP~h6-;*YaejYT+Z^p#j5YEy; zOQ!(f)coa(#JW5S#wJ7L#&%2m<6Avy(-WV(%RNs#@`{VI8{7{V9r%2FeB?u@`Ex+# zGGeB1u-UMIP&OR{rtoWBCHoWRkh zQXn9R61td;u&K zGD}bBbzzgk-8E%-c_EMp&{V(!z#nu694>#0;u4V3 z2uvd;+MWk1Q^V6d_*d@vIIR4XgrM|1e|5CZ`9A1P7@)kjnV7yyQr8eD+Gcdz{fCuC zMMX`muF92`mfB5zInVQA^2`-HY>*@JG^l-N0s&C6vtx(-)h7Q2^oj1fJ(@Y)cDAzzyd}r;d&QDAy|=UMiun3p^5CtmPR{iJJWJESXfZ)}hc)$5ciJUp9%4VRJHomG<5}#oM=Uw-_|sym2F? zriKD}4oV*Pp|1LR4hWfKgL*nTK{utNQ($EnPqpAa%c@aqWEWUh=D{R0>J*??BM6F$ zI+9(%5U`Lg!IQd8^XHY29|-&d0-7&{0y@xAPPHM4=3D4a6*m1Idl%g|lr>QG>0oD- zK2cU2mTa3tST@0&)_L>xZHbIRG*RvC?Qwbzj0{Fdh0Ltv_2;XdMj8%Qcz1Vqxwd`+ zeigN{VgV5HMQH)7Gb}6&3lQu4&R5;|d&U=#iC#IusFi>RbBT^)Sjf^)>1iknSngYV z3#Kx-7nd@)IC7{#7;1O!rz)`Ck8*-XXAmd2wand%L_{wE^&P?{X;Y%3qiN~s&%w(v zt6`d>FTPPBUUC9^A~mc@MH=s)zMXbFfByV3&zqY^k?-Cy9l5+?nkT5P00(R48SF_H zm)`h1K28Hl(-4qw+K@V<)=MZY+IKfA&XP^MfT+KJ8f2%(rvW#7(YeR8H>=`+%ern2 z8<}XOPmc7Ek&T80>Vg!{giHV|WmzMMefKW#@X!rh7YliOi+G?|FQl(e*#!9LafK*+ z2=RjdI^W=w2QulGh$#p)%2ei1B1F9G7Y8I8S?Hx}PFt};-2(7A79w!G`(*xD9cAiJ z8uCwMKuXL9S&W`Ot&t&UU#HplOeh$+5|F)6ST%O)d1+JpaAUyku2UHG^XG}$_9=zjqBtV|8*6&E|eAE2(>sL!#TN7weB0^C76PA@FNJ~r0I2epysaa$}K0*No zOy_Mpw{4cX>|m9(UM=PO>gvl#Xl(55qy2Zc=LwtwnTY8sDk?6s>3i9E#!Kh-({gZ- zCU9C_!cr+7q+?|z6n=vjwxTDER!|WA{yY_kKJ1Vq^`=CZKTx~utxqFfaDnrKb0VD5`>=f{W6MDm1GJU;NDGw04p@38XoQz4-- zG4!M4a^c1f?ohaP=!$_F0D`o&x9coO|M(QX;`NQ;?p-2mZ>*>9ub{Jo8tny8zkKih{TF{G9ump7x3`z-e>!D1j}eX6gSdrw5en=I?enjbXkcyvyqX&< zP8RNbvCzkW{Mlvxt_p7#Unu=XeHwYkZHo<23UgGd0xq||wJ0jYaT%|rz5O$|U*bv^ zR6kB5P5^K-$FIuCgGw)&=m+72cZrY2eUk{$-(LEGDgGgezECQ?2WnOb@&^dZhv|#- zuzC=ZO)M;wrxbcIn0J-s(>skP{Ky2Lz6cM&pE?81Js=|UZfe`kd|#`K41|MI4bID3 zwE&SG97&vM^^_OnEhA&&>o;zENu6z2Z8)I3cYQKQv(D)*qCei?PH<9>PsKxmJU`rh zF+aF`1HD3y7n35f9Z%=BT<~ZFv}**-j7(YUA?*^$GcRY>+Aq$8+Kzdi93g$H)oTtK ztQ}YRoJu}-W%rvklNZO7e-DF$UtIM(;YB7|!stMkk6H=QG_BAKy!wEECy@Xy1L+#?<+EQ^pJV)&WXV}TRD$%Iws4OIeR9cNP z8aG)1qaE9;opdApKaUs5tBn6x7%Uz) zwp6g_NEg`b7Dl`Pu}d}*IEFPg3Igdk!3u4pV}dOse-`qKr5aiPJ}FzI2v0(46$8x_ zptOh(zx%#jzNG@xt#A+efa8y_b^r1v~=utudcFNQ)%xkzm zy}Al&8eVBTc6A?Frt{t>05q48KTtiD-Wj1n6D{l)su&+cOus;7{W2alLXNjXF$#H@ir8qt{{IPyGZ}@d$sm{^!L%*7*JhF zu%d*9%1tBMt3<CZl^$HK>*8ZFZ2TIjzg;n4h=$7!>H!2r3B;r@`i{ELknB z0Z~ZXJ!tv9c^rcu47Q!Hpp(ADtE-XkqVr6YirBuMIpQu@dANNZj^#~6e~K4 z56-F{)jP3}B-fP>s^haP%bClmN&K$J%~-JQ{IkxQ zDo5LGiklGbvSpIrmy4Dbyg?|($(pY~={9v_N;F|{%ysqbL@DoH2Jc6+he_Hhjm%|z zH=JhTo(*s9-KmJ_?CSc4N?J$z!?cd=0i0@&9-Tr`>gs;}#xPHvA}A@kCRdzi9RS}Sk)jR8N^7ac+ z@Q5IX)2yDQBX_mT0&D;;_FF1Y-UJAxu=@l}sz(axAp-k22%GD+#eBn%28K#sM|4bC zrSXHV+nOly5%|@zhlR9OB+wFnFHIGd{*}tx!5C@Q`ZEX@FpiOF(FAjl1rhDy5`QZ6 zGF7I6RJNE=&GEv=QeH!7{YtB6e<{M<2o-$E`eP`E$V`bsykk7tNmT`kdKRG+^w6$h zb%1E3&e@`szrYG+gM=m~E=O)?45xu06OgU!S{Y*%;IcV)J^BS`S>pSvP1G2(iphA8 z$XG^cc%^DiGhLlVKiuv<(~&S+Vw>_h8K~SfUS6%o!RkqApiT6YJ`wlTt4dC$;j|uG zB69AT0X-S<0@?+}91OSGF6R71#l78Q{p6tWB*Ml+T8l(_i*~}$bshpfm)*>da158- zTBS; zU4w(r?j(W{@pSz6@?N_$9=&Ro+!DAv#h2ce*#0GQ+Z z&>Q=Q8)f^9HxvMCroJMsZHmI5yyGdP;7M6$VU;5Y^dI`!sxr4RmF1#wTrbjE0)j8! zeY9`Sr3tMZXAujK@8N30;c6MD=HYsn8Gl+*8H0w#Y93Jb4+_;CAiD{bk||N0z1ESW z3j_pjKIwb)m~2L>oCj;n4b4{T_uS}sfK_ds8vN(aAF`3Osi~=JjEolq1Oy;n(jgNO zasq4B<9g<0eT1=W2CwY&mQepzZi~oYXawZ|@e({<3&FT6&`EPQqLQRn-r(XI)J0Dr z5J6|wz!F^k!)omGluta~zHkLRHxIsd9VrKVMj_xYXm#_+*Ffm2p!=aTy9OE$5m8U<-6uC(4QVpOZKK_% z-l}ZHFln6nSm9b(B@VF+D*6c0+;9vI?)q3OGCvm%&+rv9^u*K%GJ<_YC;okeSqmGf z1_22!k5ywDoy@FLH_xujTai1GheR)7^NE} zuYg{TZ{Tjokgg9@;mM$UN1J>BX>M)?GVutSH#g18zVTzRINW+Z+o)uNbxxfiG+Vj< z1ll%%eU7_V+3EE`Tgf@JeFH&2MX}s)=>ZB2(g=zvX;U+ zZ((+N8VdnFoq3QZ*2TAh=M~VL+E4Ok0A$z7+emj`-NUqD(?jh)*q_ZFUS=;(m) zam%mhs(3=F67d2aD7lka4`sM_Edj%}n7Lu|;${%ywbPjWDbV&av6vF*dsG`tSqO)VAr7_VP{$h2qko4E}A zp8ATm$_eB_dPIMJa~>Yf2aWR&beuJkj?}yWdr2mHixSM9fUE75J zEX`|}794_r#xNRF*%D4}X<_kYYfz81BLoC5a8P5=6&*|i4CNsBp8JOZ#Ww-ZwNf%oz9OL~r7)%~sxiG>M3ml)s%`Q3lkpE+NlB z!-|Q;s>+5g9f;@W(t9A&Cvx79poeQ zV`Us*w4tzan}Gof`JODOS0mUdudaR>9z`i1P&!M68oT+l{oVhhiT#R71vs4#UfLCT z#{i1YBC(K9?DPsU`^`i{Pk=e3^qXZKOf4;1Lw2{&QdSwqu&q33+zZ+~F#OTv1fqeXHXDlyP`1wysJgqm^_8gY zK{`adV1x4wBfv6BwB><@oiv^tu_6=Dc2&`La2I;jfFgnR1YkF@A8NAg!)cWKE+pW{ z;J4mR<5#Wgun?#9R{G2X3-sn~6h1ssIkIj%B11A*9IAi-wcU7E+m0ba^E?`rrFZ6f zPD97%X{11_O17r>uf38-FQNA8U2r`~ES;z}{}|GYt!^LIPL;E(sWi8s^mF^DOeeK4 zh!8AHK%5^~4xd3TgJK-H2(E32Zk`f_6u{dS8+P^-MAC&M*V#uZ`_yLvZ${(Kk0XMt`#1&G45ewT2>(tG-or7~f|r(5&#tmm0G^YxCT+A3^x`$~ZU z(*VX)P*%R7nS_wHZ&{8vP$AEuXrxA%c8&bG*YvG$1r<*qJ%|?(ofy|L4@6-FguK=Q zlxdB9_njM1thhl>|K!uFvqM$Z$+YCqCV&Gu>HGJ`cB^Al6hYX~LxENnA)90zc#xty z6|-?rIf8a;ECl@fosE0CSP*I>AXIA`5_{2uG))LS%j#uDZ*!*gp$~-uWF08=n3rnk z!;y>{i(CU}k#4HB&EEZ1mp$a$M1M8 zvFhW|OTW+kKJOT`3@ii;%y!Nhfc_A1gU6AJqw@tD22=?GT*8wmTS`iTK(mhDSzNMf z+}uBuRtw=qt!_VqnEzLW8`O0z6fU0qsM)3`CBhKij`52Dla7qqqw39sDya{X9bOw3l@r(l;ssUQT1vU}o{0d~1_ZGfD*2>irjvIG zekh9mFmy>rr4bcPyFs_D-F@(^lM)evA`65~+9MBcDL#!UJJbja%ATnlK@`RE(lJxG zb@L|30iTWT{er4Zm`Cywa}rZHBltPrdP7NJGm{mE~X86q=^f$`eIeFH(Uo)~wR+Eo6=@D|= zGmgu{D*FIdoXT35(JS+9qgL6HmXbnJMzPrL-c^_qrI(4nag;Q~n8akmi>~^UqL#`D zG}$3uAoPR&4^$g)_WaJI860L6N(HG|I8?TvUjZLkHsc6OP9~f%d`PO+5wLC)_6_x2 zR(aR_g_x))ETM#*rW5FOuxqWmEl1{D0LHm~s-i0I7=@Y$P$W*zui@kz2^}n9!xih_Y1miGa*1E+Ol?heSHHgGg%uC%gW8s-$bCl$*5HAFGi6$bQ8B`{q}?c zCgPQrMw>k=>Ri^6kK*!}TxOLm7^5LXIPqO+pd}!TT;=^rIWufxfEBg6_P*%6edyhV zmq76B-+^i%CG`D565d_5_FQBecP{g@KZ~Bo>#~YG4;2+s4`qW3#!KBV4{;LSo zJX3jC+ag4nNYRx9*jME3Lpv_wH8C;KuKT_-pt7n7%(8Up2Ha|$cA-i?jC7ns&YV5V z;6Y7I9SmgTG@|Re%#qLqch7VVweSJb{Ds9W7eokpxF?UG;+@(Ou)nug;bM`*WXO%? z-qIp@Thv5w#nGO_53GIIFn7|AB{eo3JAwV1pSu0c(S&r=`%h zXNKCVxZ^^ULXe17FlZ(<^jHeojdJtGFF^!XuXo{CsoQ|oGhgYQsAgJ-$<1a8FyoTd z;&|#Kz+5(irZdfW0s+$(Fo)}eZ(eXiaV00U;pHYaKhW{OOT@&`7trnyV8HTOt@1RU z?M)!bIa)hbBx+a1VWx&sw2=N$e&jYQs z_mI%KVJPHvz4OLXw9Nn7k~0AkPj3Hjvx*pOQ8ipUOMDl!E)OK?yemu+^g&6;-~`ms za_5a1PO1n4%~$^#hl8;&&K?*e0cvSAvu8?*ikHywgF_~m zqX7~B))Mq};>Nd0AM3(WWDV6DV?|!)fBy78C?RgC&bakXY{mk0Py^J(VdCnq1Jxo06b9%D+AI zq^UB=iI$d;i75lv!{2svXjgH6edp=rkzapj{iObD*3Wl4umi+m=yYi+%Fj=K|E%i* ztS^+7j_x(p#fw7FIYL(XNnakXs?c{!t;vOJ+-=p(#N;-R_w#?pGHO2Qr^Lro7^tbK z-HCn%<53W@^%6EJ@p>uY20B2+>pea?cnu>z(r8EV>rqIeP=cu}IY&S#!CJo=UeXBd zy~DMR#ptl$NO^GIw{O1CJ^0!k#$$RwhI~y$M3fr)6Mn%8Ewblpp=pHE>gR2AR0ztA z3F=H^UbMu?0P5tU_!D^WQ704-8#{JvX%8t8=T z3kKXBdd*s4oN)*sV%TR6iXi{`E%1AET#=!ZhLp5f*j0=JhEE-oG&Q9_@44t;Xh;jK z1tLR`V(dok2hSgXjzU`hrwO+yI4G!o!6(B0nhXbpY24PA&_+Rp5b7pAfN!MaDCUsz0aba$^eG_i#8FNhALmCz(YK*fVI z;=-UL4dXA05D8yXky1V;q4t>nS?@}$kvKj$7z5GEhw91|NsyN=jO^P(d+C^Y*U(vf zq8B@?Us<3*`_8H9pa)|T(7i?G0M#mJF7BE6y$p@gfc;+cLvsvtmlTv}ndv@jr}f0e z_I^om^(w4aJ%G-Jyu3WKtysJ#xG=0qDF%%bH*ej#;0oY<6PoPrj6Lb% zc!%x%u=Lsq)PEp{UN@kD{&j^rDb>}nK+Q-Ka4u)@|9gO!Tk)#_)OmPpX97#m$q(=e zVh0nGoHSii>7%#;-($4pKlK3O-W(v1rlQQh_<)97L`%k64%Qr&b^4&;lhS@f@ zU@w?EmKDzLXLMoY$m9rH^Ola_@0IB_b?&t>80_o2eL>t4+8O*^ve2;;mvlTj-2Z!` zmJ1*8Pp#gLjec}|g?6b|CfhXgMP>=i>gF~y=ng^qhpO9H4Gr<<7MS)8WCw>M#s3p1 zmTqX%3XPCqN`-}mnQ$K2`z>sh|Mn~xku?RLn3tPNRM~2zI3r)7X=Y(TQn}T5> \lambda_2` or vice versa, the region is edge. + * When :math:`R` is large, which happens when :math:`\lambda_1` and :math:`\lambda_2` are large and :math:`\lambda_1 \sim \lambda_2`, the region is a corner. + +It can be represented in a nice picture as follows: + + .. image:: images/harris_region.jpg + :alt: Classification of Image Points + :align: center + +So the result of Harris Corner Detection is a grayscale image with these scores. Thresholding for a suitable give you the corners in the image. We will do it with a simple image. + + +Harris Corner Detector in OpenCV +==================================== + +OpenCV has the function **cv2.cornerHarris()** for this purpose. Its arguments are : + + * **img** - Input image, it should be grayscale and float32 type. + * **blockSize** - It is the size of neighbourhood considered for corner detection + * **ksize** - Aperture parameter of Sobel derivative used. + * **k** - Harris detector free parameter in the equation. + +See the example below: +:: + + import cv2 + import numpy as np + + filename = 'chessboard.jpg' + img = cv2.imread(filename) + gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + + gray = np.float32(gray) + dst = cv2.cornerHarris(gray,2,3,0.04) + + #result is dilated for marking the corners, not important + dst = cv2.dilate(dst,None) + + # Threshold for an optimal value, it may vary depending on the image. + img[dst>0.01*dst.max()]=[0,0,255] + + cv2.imshow('dst',img) + if cv2.waitKey(0) & 0xff == 27: + cv2.destroyAllWindows() + + +Below are the three results: + + .. image:: images/harris_result.jpg + :alt: Harris Corner Detection + :align: center + + +Corner with SubPixel Accuracy +=============================== + +Sometimes, you may need to find the corners with maximum accuracy. OpenCV comes with a function **cv2.cornerSubPix()** which further refines the corners detected with sub-pixel accuracy. Below is an example. As usual, we need to find the harris corners first. Then we pass the centroids of these corners (There may be a bunch of pixels at a corner, we take their centroid) to refine them. Harris corners are marked in red pixels and refined corners are marked in green pixels. For this function, we have to define the criteria when to stop the iteration. We stop it after a specified number of iteration or a certain accuracy is achieved, whichever occurs first. We also need to define the size of neighbourhood it would search for corners. +:: + + import cv2 + import numpy as np + + filename = 'chessboard2.jpg' + img = cv2.imread(filename) + gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + + # find Harris corners + gray = np.float32(gray) + dst = cv2.cornerHarris(gray,2,3,0.04) + dst = cv2.dilate(dst,None) + ret, dst = cv2.threshold(dst,0.01*dst.max(),255,0) + dst = np.uint8(dst) + + # find centroids + ret, labels, stats, centroids = cv2.connectedComponentsWithStats(dst) + + # define the criteria to stop and refine the corners + criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 0.001) + corners = cv2.cornerSubPix(gray,np.float32(centroids),(5,5),(-1,-1),criteria) + + # Now draw them + res = np.hstack((centroids,corners)) + res = np.int0(res) + img[res[:,1],res[:,0]]=[0,0,255] + img[res[:,3],res[:,2]] = [0,255,0] + + cv2.imwrite('subpixel5.png',img) + +Below is the result, where some important locations are shown in zoomed window to visualize: + + .. image:: images/subpixel3.png + :alt: Corner Detection with SubPixel Accuracy + :align: center + + +Additional Resources +====================== + + +Exercises +============ diff --git a/doc/py_tutorials/py_feature2d/py_features_meaning/images/feature_building.jpg b/doc/py_tutorials/py_feature2d/py_features_meaning/images/feature_building.jpg new file mode 100644 index 0000000000000000000000000000000000000000..34de31cad002516aadd0bd3e8b5989f399f912b9 GIT binary patch literal 50435 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∈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 VTs^fJ{{ZkIzs8DQ!_0iB|JjTfAK?H1 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_features_meaning/images/feature_simple.png b/doc/py_tutorials/py_feature2d/py_features_meaning/images/feature_simple.png new file mode 100644 index 0000000000000000000000000000000000000000..77185da5d43cb5b22f7b3ae93ec5402fa1ec6c24 GIT binary patch literal 1063 zcmeAS@N?(olHy`uVBq!ia0y~yU^EA^zj3eu$;}TBOb1dd#ZI0f96(URkN}j`{9gLoMId98rvwE7(|48`vSj49FDVxgO?RV-TWxsE(d$>}^ zT*32BgGwRuq$9i@LR9743YRZf@;-Ns-NUr!_4fB)rdeF7obCVj?=<3EO{C}WD%-N& zuA%Sr^_W_xOE1%b4$+OwbGVdzI(N@C;ir3kF>K4-Y|@v+X@9JUdD6S+yw9fdHSW(o z$`AuoMKDnD+DlBV(87RA`+hN0>BSd+3iv{)%p)+0#nz?qV5e&dFgNK*iKU|fh{q7{^i(dbF*V#Rp;zGcKhe-S}Gb2$_wAF zvKRE+7w2UT2ZmhA&b>P=pT81*ph|MO_{+L|s^;IMoxSnEoX_Ct>gTe~DWM4f){L2E literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_features_meaning/py_features_meaning.rst b/doc/py_tutorials/py_feature2d/py_features_meaning/py_features_meaning.rst new file mode 100644 index 000000000..d785cd756 --- /dev/null +++ b/doc/py_tutorials/py_feature2d/py_features_meaning/py_features_meaning.rst @@ -0,0 +1,52 @@ +.. _Features_Meaning: + +Understanding Features +************************ + +Goal +===== + +In this chapter, we will just try to understand what are features, why are they important, why corners are important etc. + +Explanation +============== + +Most of you will have played the jigsaw puzzle games. You get a lot of small pieces of a images, where you need to assemble them correctly to form a big real image. **The question is, how you do it?** What about the projecting the same theory to a computer program so that computer can play jigsaw puzzles? If the computer can play jigsaw puzzles, why can't we give a lot of real-life images of a good natural scenery to computer and tell it to stitch all those images to a big single image? If the computer can stitch several natural images to one, what about giving a lot of pictures of a building or any structure and tell computer to create a 3D model out of it? + +Well, the questions and imaginations continue. But it all depends on the most basic question? How do you play jigsaw puzzles? How do you arrange lots of scrambled image pieces into a big single image? How can you stitch a lot of natural images to a single image? + +The answer is, we are looking for specific patterns or specific features which are unique, which can be easily tracked, which can be easily compared. If we go for a definition of such a feature, we may find it difficult to express it in words, but we know what are they. If some one asks you to point out one good feature which can be compared across several images, you can point out one. That is why, even small children can simply play these games. We search for these features in an image, we find them, we find the same features in other images, we align them. That's it. (In jigsaw puzzle, we look more into continuity of different images). All these abilities are present in us inherently. + +So our one basic question expands to more in number, but becomes more specific. **What are these features?**. *(The answer should be understandable to a computer also.)* + +Well, it is difficult to say how humans find these features. It is already programmed in our brain. But if we look deep into some pictures and search for different patterns, we will find something interesting. For example, take below image: + + .. image:: images/feature_building.jpg + :alt: Understanding features + :align: center + +Image is very simple. At the top of image, six small image patches are given. Question for you is to find the exact location of these patches in the original image. How many correct results you can find ? + +A and B are flat surfaces, and they are spread in a lot of area. It is difficult to find the exact location of these patches. + +C and D are much more simpler. They are edges of the building. You can find an approximate location, but exact location is still difficult. It is because, along the edge, it is same everywhere. Normal to the edge, it is different. So edge is much more better feature compared to flat area, but not good enough (It is good in jigsaw puzzle for comparing continuity of edges). + +Finally, E and F are some corners of the building. And they can be easily found out. Because at corners, wherever you move this patch, it will look different. So they can be considered as a good feature. So now we move into more simpler (and widely used image) for better understanding. + + .. image:: images/feature_simple.png + :alt: Features + :align: center + +Just like above, blue patch is flat area and difficult to find and track. Wherever you move the blue patch, it looks the same. For black patch, it is an edge. If you move it in vertical direction (i.e. along the gradient) it changes. Put along the edge (parallel to edge), it looks the same. And for red patch, it is a corner. Wherever you move the patch, it looks different, means it is unique. So basically, corners are considered to be good features in an image. (Not just corners, in some cases blobs are considered good features). + +So now we answered our question, "what are these features?". But next question arises. How do we find them? Or how do we find the corners?. That also we answered in an intuitive way, i.e., look for the regions in images which have maximum variation when moved (by a small amount) in all regions around it. This would be projected into computer language in coming chapters. So finding these image features is called **Feature Detection**. + +So we found the features in image (Assume you did it). Once you found it, you should find the same in the other images. What we do? We take a region around the feature, we explain it in our own words, like "upper part is blue sky, lower part is building region, on that building there are some glasses etc" and you search for the same area in other images. Basically, you are describing the feature. Similar way, computer also should describe the region around the feature so that it can find it in other images. So called description is called **Feature Description**. Once you have the features and its description, you can find same features in all images and align them, stitch them or do whatever you want. + +So in this module, we are looking to different algorithms in OpenCV to find features, describe them, match them etc. + +Additional Resources +======================= + +Exercises +=========== diff --git a/doc/py_tutorials/py_feature2d/py_matcher/images/matcher_flann.jpg b/doc/py_tutorials/py_feature2d/py_matcher/images/matcher_flann.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fcdd635947fcdd4ef51971d50470420121e2ac43 GIT binary patch literal 34601 zcmbSybx<6^|K%b95(oqfE(z}LmW1Ge#oaZyyKI8HOYjg}mc`wDaks^Nad$bszu(ne z)%|sMJvBX5Gd*3OS3N!5{od=B`Ij}o2U$rONdN)@0D$m%0A64KaljiSWMpKdH?P^7 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


$(8uLSOXXI3 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�sYnPD02P)|dF%KCP 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 RA$-O>lh%qTuG8j^|JiknrlkM? literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_matcher/images/matcher_result1.jpg b/doc/py_tutorials/py_feature2d/py_matcher/images/matcher_result1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de6d8e6102b212c1258fe834f4978a6e727ef6a1 GIT binary patch literal 31620 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 PNGxXZf6j>b_xFDQ$~SBT literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_matcher/images/matcher_result2.jpg b/doc/py_tutorials/py_feature2d/py_matcher/images/matcher_result2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f1a7f873f854d80d48056f33f612e0ffa75a237f GIT binary patch literal 22407 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 KzQR=hP5uv6M;rJ6 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.rst b/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.rst new file mode 100644 index 000000000..358a963b4 --- /dev/null +++ b/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.rst @@ -0,0 +1,207 @@ +.. _Matcher: + + +Feature Matching +********************************************* + +Goal +===== +In this chapter + * We will see how to match features in one image with others. + * We will use the Brute-Force matcher and FLANN Matcher in OpenCV + + +Basics of Brute-Force Matcher +=================================== + +Brute-Force matcher is simple. It takes the descriptor of one feature in first set and is matched with all other features in second set using some distance calculation. And the closest one is returned. + +For BF matcher, first we have to create the BFMatcher object using **cv2.BFMatcher()**. It takes two optional params. First one is ``normType``. It specifies the distance measurement to be used. By default, it is ``cv2.NORM_L2``. It is good for SIFT, SURF etc (``cv2.NORM_L1`` is also there). For binary string based descriptors like ORB, BRIEF, BRISK etc, ``cv2.NORM_HAMMING`` should be used, which used Hamming distance as measurement. If ORB is using ``VTA_K == 3 or 4``, ``cv2.NORM_HAMMING2`` should be used. + +Second param is boolean variable, ``crossCheck`` which is false by default. If it is true, Matcher returns only those matches with value (i,j) such that i-th descriptor in set A has j-th descriptor in set B as the best match and vice-versa. That is, the two features in both sets should match each other. It provides consistant result, and is a good alternative to ratio test proposed by D.Lowe in SIFT paper. + +Once it is created, two important methods are *BFMatcher.match()* and *BFMatcher.knnMatch()*. First one returns the best match. Second method returns `k` best matches where k is specified by the user. It may be useful when we need to do additional work on that. + +Like we used cv2.drawKeypoints() to draw keypoints, **cv2.drawMatches()** helps us to draw the matches. It stacks two images horizontally and draw lines from first image to second image showing best matches. There is also **cv2.drawMatchesKnn** which draws all the k best matches. If k=2, it will draw two match-lines for each keypoint. So we have to pass a mask if we want to selectively draw it. + +Let's see one example for each of SURF and ORB (Both use different distance measurements). + + + +Brute-Force Matching with ORB Descriptors +-------------------------------------------- + +Here, we will see a simple example on how to match features between two images. In this case, I have a queryImage and a trainImage. We will try to find the queryImage in trainImage using feature matching. ( The images are ``/samples/c/box.png`` and ``/samples/c/box_in_scene.png``) + +We are using SIFT descriptors to match features. So let's start with loading images, finding descriptors etc. +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img1 = cv2.imread('box.png',0) # queryImage + img2 = cv2.imread('box_in_scene.png',0) # trainImage + + # Initiate SIFT detector + orb = cv2.ORB() + + # find the keypoints and descriptors with SIFT + kp1, des1 = orb.detectAndCompute(img1,None) + kp2, des2 = orb.detectAndCompute(img2,None) + + +Next we create a BFMatcher object with distance measurement ``cv2.NORM_HAMMING`` (since we are using ORB) and ``crossCheck`` is switched on for better results. Then we use Matcher.match() method to get the best matches in two images. We sort them in ascending order of their distances so that best matches (with low distance) come to front. Then we draw only first 10 matches (Just for sake of visibility. You can increase it as you like) +:: + + # create BFMatcher object + bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) + + # Match descriptors. + matches = bf.match(des1,des2) + + # Sort them in the order of their distance. + matches = sorted(matches, key = lambda x:x.distance) + + # Draw first 10 matches. + img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10], flags=2) + + plt.imshow(img3),plt.show() + +Below is the result I got: + + .. image:: images/matcher_result1.jpg + :alt: ORB Feature Matching with Brute-Force + :align: center + + +What is this Matcher Object? +----------------------------------- + +The result of ``matches = bf.match(des1,des2)`` line is a list of DMatch objects. This DMatch object has following attributes: + + * ``DMatch.distance`` - Distance between descriptors. The lower, the better it is. + * ``DMatch.trainIdx`` - Index of the descriptor in train descriptors + * ``DMatch.queryIdx`` - Index of the descriptor in query descriptors + * ``DMatch.imgIdx`` - Index of the train image. + + +Brute-Force Matching with SIFT Descriptors and Ratio Test +------------------------------------------------------------- + +This time, we will use ``BFMatcher.knnMatch()`` to get k best matches. In this example, we will take k=2 so that we can apply ratio test explained by D.Lowe in his paper. +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img1 = cv2.imread('box.png',0) # queryImage + img2 = cv2.imread('box_in_scene.png',0) # trainImage + + # Initiate SIFT detector + sift = cv2.SIFT() + + # find the keypoints and descriptors with SIFT + kp1, des1 = sift.detectAndCompute(img1,None) + kp2, des2 = sift.detectAndCompute(img2,None) + + # BFMatcher with default params + bf = cv2.BFMatcher() + matches = bf.knnMatch(des1,des2, k=2) + + # Apply ratio test + good = [] + for m,n in matches: + if m.distance < 0.75*n.distance: + good.append([m]) + + # cv2.drawMatchesKnn expects list of lists as matches. + img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,flags=2) + + plt.imshow(img3),plt.show() + +See the result below: + + .. image:: images/matcher_result2.jpg + :alt: SIFT Descriptor with ratio test + :align: center + + +FLANN based Matcher +========================== + +FLANN stands for Fast Library for Approximate Nearest Neighbors. It contains a collection of algorithms optimized for fast nearest neighbor search in large datasets and for high dimensional features. It works more faster than BFMatcher for large datasets. We will see the second example with FLANN based matcher. + +For FLANN based matcher, we need to pass two dictionaries which specifies the algorithm to be used, its related parameters etc. First one is IndexParams. For various algorithms, the information to be passed is explained in FLANN docs. As a summary, for algorithms like SIFT, SURF etc. you can pass following: +:: + + index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5) + +While using ORB, you can pass the following. The commented values are recommended as per the docs, but it didn't provide required results in some cases. Other values worked fine.: +:: + + index_params= dict(algorithm = FLANN_INDEX_LSH, + table_number = 6, # 12 + key_size = 12, # 20 + multi_probe_level = 1) #2 + +Second dictionary is the SearchParams. It specifies the number of times the trees in the index should be recursively traversed. Higher values gives better precision, but also takes more time. If you want to change the value, pass ``search_params = dict(checks=100)``. + +With these informations, we are good to go. +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img1 = cv2.imread('box.png',0) # queryImage + img2 = cv2.imread('box_in_scene.png',0) # trainImage + + # Initiate SIFT detector + sift = cv2.SIFT() + + # find the keypoints and descriptors with SIFT + kp1, des1 = sift.detectAndCompute(img1,None) + kp2, des2 = sift.detectAndCompute(img2,None) + + # FLANN parameters + FLANN_INDEX_KDTREE = 0 + index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5) + search_params = dict(checks=50) # or pass empty dictionary + + flann = cv2.FlannBasedMatcher(index_params,search_params) + + matches = flann.knnMatch(des1,des2,k=2) + + # Need to draw only good matches, so create a mask + matchesMask = [[0,0] for i in xrange(len(matches))] + + # ratio test as per Lowe's paper + for i,(m,n) in enumerate(matches): + if m.distance < 0.7*n.distance: + matchesMask[i]=[1,0] + + draw_params = dict(matchColor = (0,255,0), + singlePointColor = (255,0,0), + matchesMask = matchesMask, + flags = 0) + + img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,matches,None,**draw_params) + + plt.imshow(img3,),plt.show() + + +See the result below: + + .. image:: images/matcher_flann.jpg + :alt: FLANN based matching + :align: center + + +Additional Resources +======================== + + +Exercises +================= diff --git a/doc/py_tutorials/py_feature2d/py_orb/images/orb_kp.jpg b/doc/py_tutorials/py_feature2d/py_orb/images/orb_kp.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4205e19ca5102f8309ff4842aebd38b27075da8 GIT binary patch literal 23895 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%0A%H)s1axnKoVH`0jP9tMZ_7;mRg`Z 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.rst b/doc/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.rst new file mode 100644 index 000000000..566f55520 --- /dev/null +++ b/doc/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.rst @@ -0,0 +1,77 @@ +.. _shi_tomasi: + +Shi-Tomasi Corner Detector & Good Features to Track +******************************************************* + +Goal +======= + +In this chapter, + + * We will learn about the another corner detector: Shi-Tomasi Corner Detector + * We will see the function: **cv2.goodFeaturesToTrack()** + +Theory +========= + +In last chapter, we saw Harris Corner Detector. Later in 1994, J. Shi and C. Tomasi made a small modification to it in their paper **Good Features to Track** which shows better results compared to Harris Corner Detector. The scoring function in Harris Corner Detector was given by: + +.. math:: + + R = \lambda_1 \lambda_2 - k(\lambda_1+\lambda_2)^2 + +Instead of this, Shi-Tomasi proposed: + +.. math:: + + R = min(\lambda_1, \lambda_2) + +If it is a greater than a threshold value, it is considered as a corner. If we plot it in :math:`\lambda_1 - \lambda_2` space as we did in Harris Corner Detector, we get an image as below: + + .. image:: images/shitomasi_space.png + :alt: Shi-Tomasi Corner Space + :align: center + +From the figure, you can see that only when :math:`\lambda_1` and :math:`\lambda_2` are above a minimum value, :math:`\lambda_{min}`, it is conidered as a corner(green region). + +Code +======= + +OpenCV has a function, **cv2.goodFeaturesToTrack()**. It finds N strongest corners in the image by Shi-Tomasi method (or Harris Corner Detection, if you specify it). As usual, image should be a grayscale image. Then you specify number of corners you want to find. Then you specify the quality level, which is a value between 0-1, which denotes the minimum quality of corner below which everyone is rejected. Then we provide the minimum euclidean distance between corners detected. + +With all these informations, the function finds corners in the image. All corners below quality level are rejected. Then it sorts the remaining corners based on quality in the descending order. Then function takes first strongest corner, throws away all the nearby corners in the range of minimum distance and returns N strongest corners. + +In below example, we will try to find 25 best corners: +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img = cv2.imread('simple.jpg') + gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + + corners = cv2.goodFeaturesToTrack(gray,25,0.01,10) + corners = np.int0(corners) + + for i in corners: + x,y = i.ravel() + cv2.circle(img,(x,y),3,255,-1) + + plt.imshow(img),plt.show() + +See the result below: + + .. image:: images/shitomasi_block1.jpg + :alt: Shi-Tomasi Corners + :align: center + + +This function is more appropriate for tracking. We will see that when its time comes. + +Additional Resources +====================== + + +Exercises +============ diff --git a/doc/py_tutorials/py_feature2d/py_sift_intro/images/sift_dog.jpg b/doc/py_tutorials/py_feature2d/py_sift_intro/images/sift_dog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1c7b9ad8746fd116885465f6ce4d63cae8fb6b7 GIT binary patch literal 30688 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 AlmGw# literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_sift_intro/images/sift_keypoints.jpg b/doc/py_tutorials/py_feature2d/py_sift_intro/images/sift_keypoints.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0abef02180df8b0fc9eead14e4c9b9849ed1acd9 GIT binary patch literal 34020 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

;lP$=iEKu$^z#(}OzC9Q$X?YbtnBD5nj( zb$v8~M&uPf=``p50nEnzW#q0)uEr?Mo)f2vs=~-Rj$*BRe|awC)r^^tIPDS13OWmS$ca-9T3d=;T->+ZY< zStq#9{TxvNjQ)P)r9ECw8n+e>PE#BboL!ehZs=Sv^JY^Dk4Eukga0wrpRfM`5xB{K literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/fast_icon.jpg b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/fast_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0d7e48ca44ac321552ac62deca00cdb7bb5548e7 GIT binary patch literal 3181 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/features_icon.jpg b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/features_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2421d4c349e73a570707d3660bc8da55c32db3fd GIT binary patch literal 4768 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 GE&K;9`um9h literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/harris_icon.jpg b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/harris_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eda156ed9028845436c179726a959e438e4022fd GIT binary patch literal 2903 zcmbW!XH?T!769;nCyJQ0X``IK6&jEd&JIo zgB8MHItdw11Qac5U&0-SR+V&p!V~ujitm>=AbIGpvWlvj9zy?^fuWJ*NhHe3+Q!z& z*#+b3b{6aFcj2OcKwwY=4u3T=Dmo_V=B?Xz?%qqz%*xKm&C4$+EG{9ImX%jjlK!ZB zUf&sq4gw!X2swf*(m_g^j$!236g zoBxLWhYQMe@o?9|2ma*(@kDYjFO-j8UVG2J6KBBQVPXn82?8*Sj3>1(_bTc-uEKr7 zhXloy^rjDe`9=Fn_TRx0|1a6UVE=Z#10cL0?(%q{fElnjbDt^$uD5^7W6-Ts;8AI! zBJ!iU#Bd>a>GusY{;bG@6r+U3b4%+2*|w!^w5hWAOR?-yyVA+QXy4yP8IEWB4=TM> z{g#z!I2CtY(rsdxVADtBya;?l`yA2|^C(>keA8J*WnI1#uAJyBSwjx!TrXxsD$&RkB zPF-c*L7iSJ$1zA-E%jrC^FQ+Ix(n=KE_01OXi#X3+MTOjt=F};Q>I4w@A4G8CpI0g zv(xCbeDJ&f@Uz4}bRUiq6boaefgqua8q-!vqefdLzGdbs5s~5>Y$}H8FQbYszF#L} zwIwrJ@#ym`koh2gIUJJ@5_j+nv4a<0rk_K z^RcfYZgdgqeQ6Mr#SZT;rcb1<<<)5!UF&J_6q-?5Eu(JyuTTCuc8#37hJMAy}6nVIV%^2JQqGU6hnNHgX>g#ZPo2`b@Lv-(hr+- zf7heblYSiiW2w+1gzZxcKI6}{CN2GI;&bRpuho-;jI!pkx7zPh zH=CE{-o6}muAClgD~TTXJZbNKw)C<~iS74I&2Cl82Umh=@$!}`W6R2GDFHtu+LylF zxvcw{=&w9MSJv{uKXd*B8u44fN(%70^9eU(7i! zXMK%f;U{Tp%|#k%XdBW#8Y*Un%<57YaCv5^OsLPn5%rI|7A-^|ZSbZP2V9VC_GjGE z(g-%Xs(elKb$nuxmT=UfGc%1{Dj$E;BnXbe#VQR3Tt=C{7OBP&gqu_GRhEVt_jDTe z8jD6Dx-{|;T#_uy zZ9nU)5mfAvKGPeDrAO;}Q6w`+&Be>*Um9}h}s~Eu5-NJZYhMExH!;gm8UMeH9j5(xg zqKF5+#$s8YFUhO-i{#syM>6j(4%eP4-PSQRDpJJg9?Vj_#)hM#U{^qhex;%1k!o=Va5KjVYaN-W>M3Fl z?5G(ez)+`kFOFs`$U*8WXWG*3wFsx4+VmZ&d(M`-OLjP`!+&jiy86TtUO-FCFtrO$ zj(FCdHZ!1pV;=riyUS15B$&~0dh*QWpRSn`>#nA*_l^$DmS9C~`@37K23*4_jbE{@ z6Bg@@w1AqJ^;d=0j{PRPl_g^vu0nPyh%|Ly*pzK6YlDa;VAzN9eVT;MiB9ep%735r zA$eY7$1arO-FEk-Lds>QCNYm>5_7VF=Q+N1c&~s-jALEir@|6`n$vXV$*_fTM2TRU zuxj&sxPbu$9oY+g-r_7?m75z)SMch7c12z7M`yZB$}#PZHIJDiMnG4n1S@?P@Qe|B z8pTJ-G&~@qDxq$Z)Irv7hx z-+=rB54-U9fxTtMhMP1o-5Wnq?x;RBCV2EJf{ucp|M~I4LIkGUTN~;%P_EZfF6Dmm zr))Jj=X)mBQn6EFkMU+VocR^gZ&vFQtsq~ND}Tr2idhbP!hSo$F^%>`8-L+8*$A

%>y%OlIZOX3ZhRiAQ?482r+MKFI?Iq?l~P z_&h<;KS1--J=Vv#huLu-$o0__V*V8*u0`femXS>nWPRmixjtpgH#sWC_&r^o_H=_% z-%$9?lh#S`;+peijXtfTDiYZ^N_#YE2Uv2JVVcPp>J^xHaNIL_K3SamF` z^y$N8)=zkzT@y6oUDF#Wx9FD7b^N;kmSa()s3i^ucn6 ziz4}jLQUIyZycGl(>D;>oddEE#Uk&6iq6M+x+6HPg9SkKTI>M4n`ff(mP{uv?6GHP@&1;l^{p& zdj85~x9t@qY{4W=@^wFR(FdeC5?ZR4kc5Pfi`-nD{1^%NCtpO5AmOCLCn4y-EbYBF U0*WhW0|gT_;~^xBYPLK659AY2TmS$7 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/homography_icon.jpg b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/homography_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2788ed8dc267cff4ed9f7c1224b4a787110e23b7 GIT binary patch literal 4663 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 HZTdd|oX*Y{ literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/matching.jpg b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/matching.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7e654d77a84b0c3c45b7ea253afc487a783b7cfb GIT binary patch literal 5574 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/orb.jpg b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/orb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a93f75e5cfea38cca9aaea51f38ab671d942bb1b GIT binary patch literal 7231 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 L#BzRh2x;nX;0Zd8 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/sift_icon.jpg b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/sift_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..146a3336124adef60d4cf512311403550e974d80 GIT binary patch literal 3432 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 V+Y44EoW0BeItQsSK7m|+`wzw*PCEbq literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/surf_icon.jpg b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/surf_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d4fe58dabbb1deaf44117d69d0100c0f4c02819 GIT binary patch literal 3442 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 LnHwM>;KY9b?OKNM literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/py_table_of_contents_feature2d.rst b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/py_table_of_contents_feature2d.rst new file mode 100644 index 000000000..0e20445a1 --- /dev/null +++ b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/py_table_of_contents_feature2d.rst @@ -0,0 +1,170 @@ +.. _PY_Table-Of-Content-Feature2D: + +Feature Detection and Description +------------------------------------------ + +* :ref:`Features_Meaning` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_1| What are the main features in an image? How can finding those features be useful to us? + + =========== ====================================================== + + .. |f2d_1| image:: images/features_icon.jpg + :height: 90pt + :width: 90pt + + +* :ref:`Harris_Corners` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_2| Okay, Corners are good features? But how do we find them? + + =========== ====================================================== + + .. |f2d_2| image:: images/harris_icon.jpg + :height: 90pt + :width: 90pt + + +* :ref:`shi_tomasi` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_3| We will look into Shi-Tomasi corner detection + + =========== ====================================================== + + .. |f2d_3| image:: images/shi_icon.jpg + :height: 90pt + :width: 90pt + + +* :ref:`sift_intro` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_4| Harris corner detector is not good enough when scale of image changes. Lowe developed a breakthrough method to find scale-invariant features and it is called SIFT + + =========== ====================================================== + + .. |f2d_4| image:: images/sift_icon.jpg + :height: 90pt + :width: 90pt + + +* :ref:`SURF` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_5| SIFT is really good, but not fast enough, so people came up with a speeded-up version called SURF. + + =========== ====================================================== + + .. |f2d_5| image:: images/surf_icon.jpg + :height: 90pt + :width: 90pt + + +* :ref:`FAST` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_06| All the above feature detection methods are good in some way. But they are not fast enough to work in real-time applications like SLAM. There comes the FAST algorithm, which is really "FAST". + + =========== ====================================================== + + .. |f2d_06| image:: images/fast_icon.jpg + :height: 90pt + :width: 90pt + + +* :ref:`BRIEF` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_07| SIFT uses a feature descriptor with 128 floating point numbers. Consider thousands of such features. It takes lots of memory and more time for matching. We can compress it to make it faster. But still we have to calculate it first. There comes BRIEF which gives the shortcut to find binary descriptors with less memory, faster matching, still higher recognition rate. + + =========== ====================================================== + + .. |f2d_07| image:: images/brief.jpg + :height: 90pt + :width: 90pt + + +* :ref:`ORB` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_08| SIFT and SURF are good in what they do, but what if you have to pay a few dollars every year to use them in your applications? Yeah, they are patented!!! To solve that problem, OpenCV devs came up with a new "FREE" alternative to SIFT & SURF, and that is ORB. + =========== ====================================================== + + .. |f2d_08| image:: images/orb.jpg + :height: 90pt + :width: 90pt + + +* :ref:`Matcher` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_09| We know a great deal about feature detectors and descriptors. It is time to learn how to match different descriptors. OpenCV provides two techniques, Brute-Force matcher and FLANN based matcher. + =========== ====================================================== + + .. |f2d_09| image:: images/matching.jpg + :height: 90pt + :width: 90pt + + +* :ref:`PY_feature_homography` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |f2d_10| Now we know about feature matching. Let's mix it up with `calib3d` module to find objects in a complex image. + =========== ====================================================== + + .. |f2d_10| image:: images/homography_icon.jpg + :height: 90pt + :width: 90pt + + +.. raw:: latex + + \pagebreak + +.. We use a custom table of content format and as the table of content only informs Sphinx about the hierarchy of the files, no need to show it. +.. toctree:: + :hidden: + + ../py_features_meaning/py_features_meaning + ../py_features_harris/py_features_harris + ../py_shi_tomasi/py_shi_tomasi + ../py_sift_intro/py_sift_intro + ../py_surf_intro/py_surf_intro + ../py_fast/py_fast + ../py_brief/py_brief + ../py_orb/py_orb + ../py_matcher/py_matcher + ../py_feature_homography/py_feature_homography diff --git a/doc/py_tutorials/py_gui/py_drawing_functions/images/drawing.jpg b/doc/py_tutorials/py_gui/py_drawing_functions/images/drawing.jpg new file mode 100644 index 0000000000000000000000000000000000000000..812c79475dd6eb733dc1c51b9252f7ab1d0d64f6 GIT binary patch literal 14390 zcmc(G2|Sc*`~Rb{L?LUDOhUGh&>{?V5W2H}kI*u*vmR$>V`V$WagzTO2j^+d zV{F`Kc}@!o35y6HKXp!0?2IJ;8R0YgHzA`sc<>PQA(lgjSk9baJ8|Z}ev#e-3_>@ zSNnqJ0dfWkMlLaVN+wNHs#8wP=k7Msh4O4pQCw6t|};d=T8X6AP+EUm0763 zi%)p+G%-CRGwVfmPVURMg+;|BrDf$6wRQCkjZMuTTe^FC`}zk4hlVH7Q`28&X6NP? zuxslZn_Jtso!x!8$NICM`Dr}yD!>T$^J9J{Qs6@zX|rcT*JU&2pPC} z5C#ASV341U4R-@}0^s&|;p~w^h!K+@f$Ts_Ehk8(g2u0G9*pwMdl_k49hWKU%0%Sq$EMUsW%^ru2o@H+uPp_?#5@C7^@4B;f37yP0 zZGo)iUq?2@7iNqxY~QOqVz)s8ZZg4weCO%?eSR4oo_Agl_`I+1YOOm580?uhbD%Pme)*{Ka)t zq8#NZiA6w@aXx+GxBJvt9Rd}nxmn~!MZU`}?71Qd$BhblE)U3Y(#v@ErLz1-G&MBna( zaqcM=nRE2A_0Yz|7_Wo*3d}lyrULWd9@<;5wIih@;B^>&f#!J=@d_&m*z7_k3*7yf zP}|{zdx)+i0f!8Rly4U>UB2ib=F)SF=vIrY9m7)L*NaF%jV0bT71u)oIN9NQYe-(y zDO5_!8$GWwy>>^n#hnzTZyBhVWZEw&DE>!ie>3b@c^m zpU7^EG*is2eE!KP0g-$Y%wQoQ+m{5u5}@1In#O3i<9){r%ip&nqWZj4eDVr5QicXq z4TqFg6d%2-%r%6@&ktJiT>6~Sp6r3nN95Y-+sQAX7@B4i+tRbNvi&TXiArG+lV_5k z`FEuqJ`2I#XZT`;8oa!hpAQcyS*%6Sch0>0(*vzmbTqd+I z4JKh0Q=?(Cc^31b*QfABEbLbAripehpDNr zw$;N*#-}*O*9uGzkNg@C?rYl`BIu|j*@>efDpd;+D@edqBSbhQyM#rbWa0d@52vWm zhuR0jnX$?nYqBBf@uB!$d{9$M9BMLISz_5)Tz00oOt+*=XL`v^@EVmr{BjWTp@O-l z$(u%X5v;rADxX4*z9&54y!i6Dk!xL-w4%$^&&iab3k+J2(hVFAT#bsI8Z2efx8#DZ zX6mWB7QE8ZILCH4O_4cDovew&i>7RhzfbgJ{e=#j%f3$z>ifP;9g)Tq$Vb>wQqP;|5A^C9Wp8cc-#FbQZ@t(Urc zxT@;>mzB(>y)*afn?~9=aguR<1EQ{LMru6W*PPAW&lrxz>ex=b?95ZNPc~woH%pV) zRK${i2fDqJhT6T?b^?yXw-V<~o~7iN4rH^5k0Gj5Q{O$Z%^LY&fk(rwhsB=}mkM?+ z@m*XTD}N~@YVmwGVp4%w*Pn(z{odamKN+38)*vX#m2qN)=z5m$({nieg>iP|RGkWF zEgI9sGX}B=r*je9Hx7u3G`&HoyrKJidNm;&Aq!$|Ffp{|gSQgQesQBXUvoX_}M(3$HM*W64M*EM1^h0-Z)-9+(~~ zz)r!eDfe~o3Nuqb3l5b~3m@2;Acy%XnJxZ`JM>kRDv?)>lG2+4Ph1r^c5?f*OI@Nj zXwXbWa|LT`rF=b<)i#I}>)>a+6&hy}Usgr3KnM8up#a#TD+dMTYI2 zvR~#$z4}ors9ReE1>dF>L`38@^r;#Qcani8mO?4BFRrOyt2u86+_Cr-uSR4}oFdCrJ(LYPG12 z!&9k5Mmp2kPB$X}M5e2g8{1sD6|Ch_*WscmT`rA#LV6CA^*{G-#iyKZzq z>-w^!z%VH!;hOE{%B-niel|UnANV^XcL_PoQ*~b>6QrVcr&QXLR#~+q5P=_ zej4OinOUh1@n<%0`qvqv-uq`f+tXA%$oY$}>>N=W-cos!NdJ0nPv2_W7rp~Mqp85M zJG6J?M|{qzc` zeN@sqXb%9_DwR8Kz;^557YxUbpeVA&BCA6pbmPT40DKv2w*QSS+7W9LZoW$bp6)sX zA6w0z*3RI2CGrm5393*DO!1#=sKC@=EC0$tN4jmm->JzfU)9u$3#%J@H-GP=CHXz% z1BjAPjQdgteTZ0%W~=Q$bz)d)ev!;|AQiaC0WR8X@zbiT(4qm^3M*^8ijXESb5(iXZ&ok zetv>u=*wg478CN?TM8qMVboS za=%-f3i;=tkEaxlONX;)o5v29chH)YWMD6=CtcFGY~y{HJsbVVp(AQ=lbd4*Wb=gsXnvvaTOC602)50DA0As&$q)XU`{>;e)H6<9-XHJSZYd&}epS^`rLYOzYPRQkGBC){Q;zc) z<3e-~6ct?2T*3J$DUCj;?_(#eR;Z}dii%zKj^7{wDFP&5HQ>rT zd%)o^fspxaS{Ik5@+IWmJ9~uNP#iO|ElWW!MWgp5$9!poQxqfX-F_o9BG}XrMsH#d zYvB3C43nS6>6^IMHH$9G7O3O<6cXked%aKsYuIS4&%*3s7CKd2!z43yt4NqbZf#<1 zd_rLRIXl*FBWXnVH#skBt#)A{vO_#VTyL&I;&d9ljt5bZ z?b0Rb0fh>%qkn1BCRXh zw%gU>aeT+iC7;vcEDDngypn|rm7KE*Z0R+^uw!3Q#uj8d>UZn-JudAd562e7H{_vX z`3-q=dx_g_!`~pEg|?KHTJa3mMKtw?@LBPUW=Bl*7bD%g_kI1JIP|jnslNH3_y2=K zS2F?~n*QORWBOnHEzsO>!bqJ>UH(Ov9A}^{Hdx=k|6*oQadMZVx#N(7O8~f`wKILl zxf7N<7f1k$v6F&l$C=s-9%`IgA2Gt8yOlEjc!3gL#12lp-;az%Vs&PjH3|+h?C2Z2gre=e#5T8T>LQxmfBbTc9@O$!vNB6-eT-!kY;bu91d{PxU z6!sRAvc62Ub)Jgo%iTo+e!g4AA0D(G%1>;qMRpWH|K+Sp|Mjddm*Ps%l+jOp9^6o- z;XcMW+I3UJDv#J+O9DEIw~rEH_ou76!Whc`daCE2qT3H-AAcz5{wk zLU%MEa(jACgS%Z{`LW*%1c>Rwk4XO+qI1~^{TDi?@eR=BtNafE-Cu3PU!4QD z2*ER2eL2z~G_?Pbbys4p+EAKAV&T_4$|1Or!cSjnS3^P1!5R0LW`7-A< z-!zPJ4D@5N3^W_}q&`aW+Ic^Lt2NFQPb+|QQ!H_Z*^>d;0m7hn3d#z8#hcPFJh(3r zbe5x$&0$1OKEfLR+9?w7T$u#;gvNx*W(R}L)oCxvMRwZn7nAjmu+?a#=%e^GjlF5@ z$C}?i9`JOV`}a>tht$l*`04O6`)bgGv1e-g$ z%#Qj^b99tLzYC-J)3blv{ik_L#(KUnIx7coI2rV)a6NoRWC>DNw_P6-%e|5q#QFG! zcO{S8WRJ&P6);PelB)f8R`l=ACm(+@dTx_>STKW+GV7?ty^)eK!;rO$roGyI_c%a&redxxTcf<6e7ZchEn@cSbS|A)uZK{MAhT1LIttLZYsolXv| z4!@m4S&}7Bouw7j>M87FYk793yy|U6WZVb5^=8KkceP4_3)f`Fl!;l;)SZ%3DWfEy zZ5CnQHj@5!Kr703T1$&oO}vExH&CM#`gS;}eJtl=XQHU44rK<}#hu`C7QT^Npw_2k zd7TBxoV>;&zcra>16RBR=}SJ402!Eyt;zem9KMG5W z)CyvnGUUsu)qdtD{2+e!*oU1`sJymCFHdaX4ps40X?n==ep;+xl05U2XlCG?p|fV_ z3exrdZnckD^ECCtIAUWLl@(alX-ifyuVcTe@%Ve?OG}WeNe}ldT^N#gBldzAy)749%whFE(iZ88<#$mfHhqKd+xbROZHy z1pcc;zXh~!kq-=LOPuBS4}XR_-hZQR{}9kT{uk)j|IibB^(gVwW7HSuK&nAO!B*wf z+$Zf9OPz@tiXhTm0}(pNFYj0U_SFt#JoonLrf)#kFLhwlZ#HCZBjS`02{>@6I2|8u zAgI4QOnr7gC;Z=_k^Tx<{MEUAU%ovs6K12z9$C)qCm6WZi zpOGc;pU^A|_~V#?dg7(BLz&hqcI!dq3DXb3oB%ax`~YduT7220@f}o`ACWCOpIA^y&h zB`Xc*t&2UKT4EscV7rtSFDBx&0@l-Pkwb<0tX(C!Xf>wmzb1k?Atxuo8HPjq z}dCKy;?PGb;C8>(9r>YUIk>LHIpCn;joH6ytc#8*Vz~KrxQEY9OWf^0sHV z>bWWlJ)5_fb0s?|!QI!<94q#(*W-e0K>fmTEmKl6E%+ zG>X)=kKTBtiOLgupGwmUR+Jz4Kz%117+ceA#0@_=G3K$}-xfL8F{$^*QZYOiFNQOr z%(mnU!<%yT;Dv8XH;S$mcb#BC4t4kusPdg;4`HeY!mG@(=iEb8KPv~@HwVOcQQPxlhr92XcNLNA`4me_r{0QPj7Ukz2eiSmS`)2p{oP&Ndrem{cw}Yh*x+4H zW~T(xj)}9f#WR%p$70NHYdBj!{uNT+EkI%JsC0!Ibpu1+bizz-C=(G*0_+i9CZAhr zo5y)<5WISuoK2VpPaS5m1sD^NwJzPD35}v|af8x~6W1FrvEKUcciVIqPu z#nGa3+Os_;>~8D&LX97$>kVRJqIhc9r7S7Ie`2kPqj zmz~=_OV=JWX*MSwsEVm>(t=`8Fbi*6h9|`)tg180Ll3ygiBF&y!Dh=CT%K`CJyEdN zEy-W?b6fY}Ew%|iy;uK$6X%lG8cVZ}CSr-ksh#O#qQ&^SckZw$M}9Z%U5q=V<( znM=#l`evrR=bi=Z!V7$Si^Fcd#dJh0GkY2|#PAF*O;}Qmnn%`F8B{l4 zaARhKJjx&3t?nCwNJL28LxxewAWl#KxApx#abB({jPPWw9eQTj5`%o|8$ofjrcfzj z`R?>{$v5TZYz#`Uwz0ZXRjoI$bOm|iAH8#IJm41?pB2TZC`(w6arH}t&8@l;)E9=) z;&CyTuAREa)w_{LU?r-aP-(ZloI~8u;?jlQe;Kzb%Z^LR#NT+sc?1_mTXD0k@=URt zTs}u|Dj&|-_o57~r)8uxbshpz?`-Y$>`oNEe_IgdA%*nRSU*uC2+UaRS7ISNWMB?l zT{Yk#W;jy6t|mktA#tOvO&tK-cm}HGrOpRqpmk1*&v{Bpd-0}T_g`&n)g96taN6K5 zhsuw3QZY$>cm~~_vx1~ygX>UC2=>|5{-U8%AbOcUrm1wlTB^D;sb4?F*>5Ps z9*Ns>7B8LeH7hulN-qQg4Twvv-;sW4+gHh=3imB47>Y8*1CPsXNb_ddsb!QQ?L~rYqZ9K>eYhi1ee9iP8ZKNDhe0QQV zR)AUeC3kefDC%=ZDoXgm_Jirq?HUAE39>mqJ{>lWGkff9Y=1$N%;7yG~UR_tTneb~R>TXAxW z@H2%-LGYv6r+LlZ%N|Fv;?|YBv`-{lpyB1lnQ@fk@4v2`T77uCpLptBvW486t_)Vk zmxNBGv8Jh}Nu#45!YD8v5301V2R5m8SqcsHOPAtLFZ{U@PPSYTiGMniLIO;YM3E|$>e@EG5SY1ltD*2G zr}Xi#hdqR6o4clkICya9Z>g;DXL|h8(V8t*VtSQgbrYN#B?)Ape+X~sRQfRE6v)Mfi&aj3>3Dd0kc+X+U~ zcO5qhqEBBzoJ8(^0uY~AY_$S~i*3ue+nZ-xZ*IQlp~;iuY}mUzAAJ=q18*oz6@DIY zhbL>$@mMawk$%?r4%*?!I3lm!Be5|}Tvetm@SRz5-jGr%By_tYXdPiFM@SM`^-*9M zdegfyd%h}QE<=a5 ziT9tM1bg8yf*@4i77bt$4I^^k3g7QOwI~W29Up;dG0~Ob9g$LDfB0yzD>7vKpwCgW zm#veJUxg3Qhu#hjbHc<~djP{};oy+(Cwe#j8g;z$jq*qkS- zw&nU^w`n*GYl*%y`^YUI+aP<;^@L2Dd&$H1ml1UDJ+_t&!A3}Wd>lw4q6A=Bo~N@& z0GDCSF4#x3%K!phu=>oh0;7HEqq--97?7_v`!fHeDzG3qm?8+q3`<71d0T$a*x@x{ ztXcdB+hF5|)X#ytyj3&Qg8~ue5htY^J)$VFKYl3wReV^3FRTx$@KR6BpoROaF8 zE<9@Ce9WMY$9b1DtmmtWlA3Iq^w8rD2{j$ud6v|kB4@p1WAc!tkm%v)R%+AX%d zys!t>W69&R=A1#?ZJM?<_$?pw5--EOW&#Ucv{f<_zi?TKg|+r+wXb(V>r=?HpzLDB1IH6);Bol%u~On)L|t+N19UbBA!yncG5C9cCz#V>K!*O z+N>mb!n`}*a`MaVi+9~-OH0%cK^aJ=mkSK`40 zF9oKwZu=cCA<@Su%lhTpv74h77uUn%21oodMWF_m<6+kMBIc!K4<{2(3u4Ra1Ww2^ zlbzVlbiFl}zSv7FTN+{Q+I3r%3Y?qzLfT;`Z5#9RUsRPxjE(UnTI&fa2Arwi0N@q4 zm^L3_!t+4k3Qzy;TtO(~ZSu!=<){d`qai-uefsffEXVbJ5pk5TortS*8U}E{tCW z+M95NmR_YO{E20yR#-5!_TA^g4r##iJrzVj=&%@D`{js@$7D+>|I)-!hJ+``=~pm< zr!qn4qon8#&1VpOSb`PnM}Y2rOhw(rf&C3Ud1yGnlaCm{i%9-ci=XqMLQ`T&BZ`uZ z3~fe61!7Ys_-J>Tj1rcqCet!}RARMDb$5}(V}0Yz$&lN)I*c~L zbR~`Rbmy_+(B?tUbjbZ3pPGBA^c3mY)o;stP%jFr{8hc5aAZbbtJK$XBiH_xVgt(P z3M4ZEVu10B&a`3ADZRFd2!GQUW1#@yI5!n>a6Y=jV9t-;M=Ggd?35b(*8?MU6=t5> z9_R2mBc6lwHAs1!MR3C^TO>P)Dcwm$yRYlUlb9eKEDE%6 zCLh@+D`gBxBS*Y1E>NMVW^C&gU*XKq@feSKH6dN$5{k!4u^SIN8a%HArKar0uCdLMtJ@Oaj3A6=ZUH0(I&g5!+VaDEF(giTN0x9ljw&Ervr6zCD%#<@aA;ya80vvoR>f%@q5$$KHFRP zy}&HP_PwoBNDxi+jqMB(VW+;Z-;emUxgzIJ+d98?Vtl8lirIdrsBZsoH7o-@Qn-h? zc$tBQFWI{akH>jGC#A%=5+At3y35)5A!Cw}fnzMVq*>b(I>|hQ$QQ!&utHO_PUX^y z>=W)$I5`QR@Z;hMufc>HpYI9JA&2&tRbC#+mz@{6yTV(VOs9KoFps_-t|u#szynla zlG60McdZW8BPnFLlm)Z#+!w;irp^G61s9{ONK8j9@=&}sYVe#bt; z0|k>`v2CYsScSfg^3l(oz!J*__&hvakj~o|Ts}I9gK3VK1?*ueT@w0ey)YboG=!aq z+c{tG#m?>sK8o*_j7IM2a(B7Zx28sVUz}OK3BqIRF4h?JqU}~y(Yw%Vqb>pOMCc3H zs20^LOEB=JFg=Icy|*v};r@2d*{D|Rui*Z|2A9FsSP1u%34vR&OjxdeClg*9|2QHx)1~v&w^}}Bp^Iwh@fBI5q?_oc7kM6xY z%k#GOhNod-(=pC!ykCJATZ6Y!fb6L`SrJS&o(sxo?ofF0K%Mp?4{hgx!HZ3~QylDA zFMdeBv=W%EMl|!z2E7QbA2x5=b}?Y6q8mwoH7C9YlMhksA!4BS_}(<~k*Srj1ePyI zvq!Oi^)3T(twDeWNf(C#zyE+lQxRwr69_~Jvd?oV6cQ=aBMtd@wf>2o`~EiOpI$vm?7mDW8T`))=80LHsgF@tmYE|1O9X(>h#w7v1kmK6)u{}@8f_;JiZRdKt0XOZcyvU6 ztiyp~c0Y5rml4e$_O4zJn+fV zN-`3<(1~zSRW~?&%QDJ~u5~xXW(sTya=^=h*A{|pPc@C@1c&;HfrlarjfF3bOj<5d zdLA+ZRVn~`0Uh`v`^D7>5%`_. + + +Exercises +============== +#. Try to create the logo of OpenCV using drawing functions available in OpenCV diff --git a/doc/py_tutorials/py_gui/py_image_display/images/matplotlib_screenshot.jpg b/doc/py_tutorials/py_gui/py_image_display/images/matplotlib_screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dcd84f3b871e180715744963502b46b817ea332c GIT binary patch literal 27236 zcmeFZ1yEdH(>Hhr8wlpp$@bpN^!Pcu&|0G5n|v;+VG0RRa00iNaoF#r)B0RaIX z5%z_Mh=>G6Lk7bhOjJ}9G;B;99BfQ%Y+M2|LR>r&d~9r@7eplFR-pg{7mDvx}>nyGLM9a7bv_=kU1ruL+4s$tkH>**Up+`2~eV6+bJhs%vWN>f1Xy zySjUN`})VmCnl$+XJ+SC*VZ>Sx3+h7_fAgF&Mz*nu5WJt&;~fN>Bi7SFf6W~62NOyvn^8F&IZH4K^~ z&q2Na<*m{a@ND_*6Ob{a@c0C;1~bxz2rTEH|nD=r|{i<%e}bs-OjQI zS?GUy_g^OPzo+%T#4W2e!U&st^1PYF;d}#2HUon$BRj-Q1l(HcM1XblKE9#8|r?#?STUrC0^YfX;cTm*<>&v{XeZ6x~m;ox^8@Dl;k2aDF0iS zpTkEH+#|1!&D&c=@T>o+HH*7-6!syNI!`Mzh&P{UQ0_&9OmL4H8vD)v+}Pk`JN(0O zdLSKCD5YQzyC?2sR&=w5vSfKkT9M*SpN?X29I<>wMOtlhx)Ehzz8+Iu^g^} z9;8C5KudaI+uuL__89<$)sOn}1PE(~K0Hv~%dxGuYqN4c-{251)Sjr)*11Ibzl<>lJwHy58j(11^dXLw1--tY&RETd5%-^GEg!c# z5`^BW_V^Z}DQ@qL7qTR^q*v7w4IF~-ppu7EvATyu9_G`YS$b8!6x^{=0FtvyjKN+Kk(MFE))>HGQj zchZk|8ZYsmfG-g;K7D2*zF06m7i403E=$}(|L9C(Z_>SHm{LTHJhv;l+gTJL;2v!* zKFW3mH2)u|@+pJdiF6oeSD$43z_2-v^Mp1nNx{6!BmmSX@FR3_4#RP-;$C*ez4Eiy z3#2b}HAOvkYvwG>>8G2e+C)>YKsG&x1-MD|6V2f%V!(74NUPz=eC2SOv=x{twt`0d}hsP%XyaGp!~M_#;3QI<{f2x znEm{21W7Z!qxbYzN;zKThcALI%6JurN8TKfbv(?1S2!VXl1=({yP z))bRFGR^%hF5i>6Z{kfhT#x)UHSUwD0bwEn5w7b^mcFJ-_`s~LA?2YmIopwdmagwI z9!P3WeIR#1bI!uGjCfYFaV#4Y{i9?tZo{XlNO)h<~0Y)W`rujL+oSW}dBYK%3|g zkx8$xpMZMd1pK$?qK#jl0Eush(JPl(G2}^?&ABk$;GpyXE%Y5;NRSB6Wbw7yGdR1V zrJTD>x_{_XHP1v{{@YK7D@Zp{BVf3c>$Jxa_oH;SZPxIDplSz(g zD^cv?fXjrEIDq&6Qo#>hH+lkaP(Z{;?+`pqYZ!35mrvpBZg(&;b5UIqTkb8c@}z5?R$0wez?c)@EPfi zJPy^=Q2WSa*We#`cTTCFaJn4EVMTQQFjeicH}4n|IOZp`cxRJw|Ih|Iun}42t)GDH zJH-EcIJT@jKj!=Dk{j;JXBJ6<4{{lN4xGPzjjjBwN zMiTB{62T0Gf_)OY~}_k6%GYlr}&AK3eYG$Nc*T(LcQOl3t6XR*;iX z3+SJF!-p6F(rr5Yj>G!UPyYls`33_%{twl|k3N}y==l%hZJW(14pb@0dxK$YuX=vG z0VRsb0_{dWRsr4*e>i{lFV6qrr~#6Ao_1Ss>KvQz;_!LVSeuEdAyYQsTSgCmH2hC8 zl>XWB8U%r;l8F(n1r*7YL8Yi*Ck7(m6Z}x|kGaJElVLYkAMtfP@?rit*4ck~>s(@(QD0U-nOV{#SXrB4UGH5Cvo(=9Kv$A~H9LgK zGX1{<+>5iYD^FJfflIxd^6~>*;moxMLrVE(9%k7e5xDF52km&?f7a$NS!l+dYGk-H zkBIF~A&1$qQzhSw&|Z7Z^XQN{_&otKzyrd+y8o9TKm(kC5-Fprb?h}|<(9s5LQm!Y~ETfOMv z&r%VgH2zCm{)2e_#fSltCI8ilKqqaRxHS7}MEowxDGy!N>Un;nXsHQB@O+E)AJP27 z=$wB|(~Dts_dKbNb->7cg>o%e&dI@iPHhQI+dFIft{em#>dQR)*dHzMA2}yjbnP-X zTZ3v|y?vK`|5}!uTES^+Y?)tr6D;T;SO9>Eibzt5y>Tlz4No< zN6KGrfT2dnyvXm?BHZxbjqEO?Zz50p_eChCS05xmXE!v3=1dWYXg$W6wecbjXCpKaDTCA7Q(7!O(U>r2Kvb$up1CoRrLNKiICHDeZUmXx(?N9Hyz}RK^u<41+wz(; zsM{v&)jKJ5*x)UE;>81fHp*?Pl%WPMC@+_X(>(*I)`4!-(SiX z$^ptue5tCpab9ZGnQEm;-XUn!cpUWkQePD}y!|??*N7VMngI1#C=NTh{bDE_GfbTI zHyZot^@@?T=kpuh(xSPoF$wtB_9FOI#F3q}GG`GQv;}iHCL5T^)5e~hMRm_3Gz5zo z+3=0_Mev-Y#T#c;Y2agZTvLxV!#=ikzxGCzl{O|)lry_-k&0U+5y=VM6(OqOZreNq z-M=!LvNf{qycU{_r%`#mZPBHWKi|jiRh$Z(lRxupdOPbirW3v;;EXWUnVxc98rXg+ zZFMT70aqd5?NmVzju#>042l!u`Pj<~l{`+*B%}A*=4`bnM_~>~Pl1Y#b9CSr^|RqQ zu!@ifJ&&agTLJBAs)xLbL5l$_<@6u25p~M5-#19dr1QeGgyB8M6Afbx#0gW#MXJDstm2!sjY)A0rVI z%v+dU?WCj`v%H@!1;+~WTfcYK)JX$>J2%o+x(Z>ovE$6V8sewThmu zB{PN%b&*R;OBO-KESrTk*~{egaQLLT``U1W9G*pAv2?$=GmjCNXBn0*FTTtyezS}f zOlBCxdL)9M7d`NSeXC{wOQ*4YDYa-MzN%e24f3x=q(!&oA{Z715 z8PM{=9ngq1nCTyH{6cD&3LG}VdwiUuaU61Prl}6sp;8dgNV>MXo_!y_ z09chxRP}C^8B)?P0S>s0s2t^qU@$&(71<`Ie#XA9RAvh`rBvU1G(0}F>BrK7rf$fq zkuwpBgc2Q58*HbQ^(yx#AWTMICL9vKRCV#)VQp)WNEBjNzM#oEY1^OxJlBRW?t}QPhk`=NS@*>=C%WsSjWc2i7`!lqOQyeSF8u4*`&tbLD9<*b%Mp z?~Z6YBHvz^q5IdVTx?o592Pv??kY$6)ld`x?G!_t4sl0#Lh^CvQB{q>$}{6DaZ;p{D!Hd~siCW~V&Y z|D)(Q1TeL{{n)hWCnZIUzx~rZPP71d;}@!lXZZOyV)4c!yuw=3AJdGGLu#BnrPeh+ zs&SKmr6KBGT^5=7@y5?KDd7Q9`?~5G=o3i+yqZ{$D7Vtv?%}>lc=*FDKY{UX4~hM} zL>BGdvZ}_K81ijfhKduk;>+*B$lDO(hfGPf!f0y29k|AN&c`hO5UC-}5$laH+ZL|| zDZ%|wFBbgDYV$4;o&(+KPATJPCX}{)5mL7OH+|0}qP~S~mD`q(tVT3m4CA-YEX!Ti z2C~AtLOiBYztANT(OW}+kD>^o_zIj*#P7v(tOEAk;-I*!v&}~!3|fH8CK_^z+nd7LCG?2U zu|;n*3NRrb^x0ddekrhC3d+QQZ%>Cy+`8V=r?aDKg{OwQ(-*;f?l>O6zOVh#VDvoE zQ;!W?Rjt*l)cZ23p}t0Gnsd-Cqnj`_q4Nnat4o|E_m6s&{2ZR<7^QVv@Gf<$>TbI( z;#I=?A5m&j)KTl?XS*U4;}4K5E5*U7_Nh7PwOQuhSUp6Bc16h8 z-EccMeK#o9Pbk+lti3STkp0-Scqle}BR%@BTRKwU@6>x9AEDQi{%a7>G)mzt_ZSRg zCIL=6M>zQ{#5l7fJg~KGjOeQ$?rno^r}excyS78shw$mi_PWgtYxGop1+k=12_!$> zfr9t!L>*YK`DI-QEjKniCru~N2bYY^&I;wTad`Tu{P-8yCbfHGB&n+$d|r+-FGdh*U&6s~z$VOAGrqiU=0(kYUs!#CL zE1Fe{aTnC_M!HCj5dp30iH$lcZUozv>369#$`s^S=lVT&7*o$LUfbbS?)M znHZRg<4gRf1^Mt}KT*Ns_#H*a%|bam-7AkbUaY4M zO>npoTm;ZRzbxPobkfmwr+Kh^brH?AnWBm2nu&fuDi$u)I>+rgaQIm^07_5T-~DKED}{uo z2u1*z_1u2)3BVsRrXs{ zU}_SkXb-@}20OmbIBhiEXY@AIuyQEdpjW0SQV?N}j3C{UIDZacvoU&U{zz%bupWH9 zdm<{Lv?kuV;+v@hgZ1m_;bBh5KR}i&KY=IUG9;<@TC4;Xt`L}8Y+(o+@_NX=UVDKt zcFhCzc*ynL_ZEYWWp^1ts_7!O#$rix#k3%iEKw#3}8CRHx5xUR`Pt zVt698^->q~3Vo-C?-1ZD*6p!;gTdNmeBGgzxTnDMwSc1PeDqo&)7^H?EtP1-D}Waj zfoR1r?Xjx$I)6pKxL`44oReQFzOF9P{|V?3&BR3f8Mvjs{d}tlRcb1coc9AW(x~!v z(#m#Zqfjx8y8T{E>|ml{^@2046ngmJ_&q24Y>JtL%7SC82&pzx|FGj$v9n-tLBe{1 zi%i`Io>JlV6G_C`8bj$l-r}X#EwyFAw$wY7Ai^-~>~MCr;MQRVH{%p>~(tu>}32Sf72hf+zu$?D_Ucaq+rRXM)74dOS(QUfdNM`YODz{Z^-SSRQH z#qq?_vqYUp4Ae+Trzqx+B7-xIKh1w5!$To%!MS;vPQ^{n_Bv@8>a@mu;sVEkG#^c9 z7DuFP&)iZl8ScVv_0P&+mS#~ zJ*^d0zqV~w(vx>@r=^;Kn$tuvqL&N47yBi0k}}mv194jjFM6B>(_MiVIMS68gq-e;=vK7p>sU+?TlL@SViw@IrULZot3I~w!p;$DsD-55_gD#l zb67vI??`XB6Xi;mw{?#pv@Sv3fgUbnE?=~g-FRj#ud=ZbCwh4hY}7av6>VepW}v`W zdwDjotqmCwP^*kv{YvQSTR0@?F^z2=;I>Bm`v^7DFt2c5gI!l9iu+K1t*P1oY(8duC3#k$)2dAxWkmBQno1#^ zwNH}w4oA0Fks@eXmdt;IY$Np``AElQ=g?|&; zJONpW^(5QPBrs!*|9F}5>{&GoXOY!I{|h9?-x99EypLsaeS~$mvjLTdvOW~Rl%ZA2 zWzQ2JNeg&!!yHcVZUUZ?2;$!h8TbHid)%0HvVQYSF`{hm)EF@! z^r6!3v7^ml3yn!LB%Ai{`{-UMGmS{P%`2dYppR91>Ws+fwx|~xeqqR1U5t^uR)?LZ zVBOXFT3n+p&NBqN+*pM8(ewtz*1>aHe06rCBAq`>^AL@Q+dk?d;o%$IZ$w_mccJb* z`ff$o8L+&1)Mb9aWK=Uj7fZWh%TT8S)pvs$j5R7{T4CkH>QV7u0R9HV(qys4HVF1h zk<5=g#d?iqfPIhIwZr9EM8(c-XSNZp0i{)|H&I66SQI8uzt8N>8$5OG=EL#8bxpTL`4Nb1AOxjpC|7I5oP#t*l_=C2)V zLBHI#`~+XFc2^ZF&Fao43cagA-6RN*%GJeiY=FMs@R)w-iZiq4S`g>1?0)Lr$=xr1 z7N35@Nsx3RtE^LCV>EI}9;}rAHL{Kf4Xonl;mSE-sgF9=SkO6ln^O_Dq#6<2yu%}K z@k?@5gbaP-R+T%@rxj&@mxwa>WvE^Lq?edoww5JVdCsAlz?i%|$}{BMc>n83Z<%H3 z^ozBont+c%3Cac`J;dGiT1ujM3%ZBnPW#DppZ&FdD06XtKsnzRA^)0q_0}dXn>ri+ zqhORfzAFw>!**FQ*4|~(ba`{Z+MEUTUQfA-14K;=G6D6YWuK5M4^%=Us)d@U)SoaND&&EUq!KtkX@8qaY2)>j5!-} z_i$xIV?UQZPPbiF%p9^ttko`K?TX3N3TZx9L<-`bfv1DyWx`#QzSAY(LD*0&bb3G* zP(;dW@T^1PEf&H)K_B{d5P9s4?l`T&5qn-V=QS9=0W*&w!r@0bpoqfVu^&mD9-)J3 zBNJ35n7nCRxO!r<5$P8j2bMX5R!I}jt*j-Yi?78y#9_c(&djCj_S5G%9Yn+0 zA;QE9bz3x0;g(4XQ<0v-ajHf`ZWGwnB~c(42)wHtGBLQGbJmE=)WwpJ%wve>-bj}& z;*PiNYdaF5bn*Hd^wtPNy*rEkW}R{ld$GgtILCkCaeoWjol(w(K1wCR(rT>#7>xNE z$&VAlr|+tk?_k<4JI+st6o!1mpZAB;XTtrxV8CAn0Qa<$Z5xCz^*a`}-&HC1oU^DJ zSZm6^3^dF@;dB+mKluCvw1(~XIz_4@mB}U3M8i@@&mQindb60) zuJ!}634Nx?fQ4W(ldDqs4PSHlA}L-D(D&RP*TTIltH@t^H8}22)8ofjV7zrMbH$~k z1-zqP_^jnCd-xHA5y2%Wvj-2f?L$=_j2c-Sc%X~hL1N%Ugw%jZZpmchHtMuh>scH# zW=C!g4;?*#KR+OWX+JV$ei+%JGhnNiyrBDHPhCGcNv6`dSFxnZUOYG%Qa*g zL}!8Qfam0Vlg$xv4VhV$*>AnOV|w_!tapK9lE|-Mc>QY~<8Tm4rJ1EXUU`*+Fx`m^P1V)ZYgIb%09+sF(ZR?HUEZSn)0 zLxVod%hj` z3Fe10uSiOfVA1)Bv1&?ei(*G3T-@c8xdIoN&o1?mCzX38xpHl7)wk#k!{03|vn4L* z0O@bUJ(!j|(0$}sSFDN|>egO43iRP_x|*yU3f`XRf~GetV!(>URJ~kXl^<0>(_||? zG}E5oE{MkO(~gG(Q{sTbl!UK|&WZ%4rBE8duj^%Fn7bZR%ur$mXTzQCywc6BErzJz)o8-#Nda~hy5Xg6idQmI9e z2G*wMzno6@-tTw*W->v!wcysRy0U#UMF+i{rw7otZoDMM;_G}@^n3+Iz%4R&--PC z{p>@4$^11AYH$1NGD;PtJz>nX%DxXhlm{eBBVNjh8>j((9&1@Au3ywvj4jIhE;BKV zyco;_Uk_sDtt*SJ7F&>-N(*au$9E;|NSPbo7j>tseXFe1NT+WV`U-;j9^Z4;#p0bG zTBSy}(<~C@e#jxy_yLVPpXC^e=CHipO}7fKKY1^y!a{_WvS$v@ch|a8f}A{YDFo;K zwZs8;SKHw_MkY-JbF8Y7eND&7TBay@KNZ+2^`TUFwz*Jnt8TL$NNkg1$8ldI=i1D0 z5*a?9!Ib#^9Ip0DG$FVq)~ovFYdCPby_$a?4@JLv0zRw#6_~V2zqWV+X!bjNFaK|w zwG^Ir;)T9}^>Y{{Ha(A$GB?n68`|&3A*=INhRjyG(Q|-5EFeO&g2Ds~%KBqZ|7xbQ zatdHb&M}C2MWYBWM76sKS+5I2gX(G!=1D1=nEnED?r0FIU!`IpPJUs*-&U^Ai71i~ z?E*aPLaLIL0TTUy`ft9tb76x_^uKtZ$l;f31pH)cl{QED&-qzQ_veIVry$_;6sGqgSZU0>7$tuA#s1P?}s=O#OiA>q4ERr#b+7 z(_=hx(R&*{Il=V)5+}z^y<62k4!LB&`d6PLdb_wi@#&U3wX$FsdTSp2asvfyCkbI)%|9I?#QCNb8)6}A7Z zX@Q(0jXg?k5JN_N-A3%i4*$kB(JxO$q&S23%m`4+_cATdV_%cCL(opwY zS@gn?RhKt!R^!u7cC3D#4~J@Zor|6pApc_5-!1IIUtkjWp*N5CncPaJW7j&-54i`v z3=g!<$L(KLEW};d(`>eAJ@gi(;RC-uf5gfV) z1KZYK(HJv~6X%Kl*sDN?5cOR_ZBA%&vvj%}@Vu73*83z_wrNV_7?1f0$lHM}*6~PH=qtq8kzni@!nhj7JZ&g=@2qOEJ5(1>m+VvogNHYKwYt7A#{3*YiG zj2933T2kInX&*hn(p^UTL@3cmVcYfgW@pbzY>i0o(vYU zn*kED#KOl+*(aHpT=nT|NXW(p73ByiFEw6{IJXJdYaKB{-A?h$KYu80YBuCIEZjXf zFW}J1&2Y)E|4b9?!Vtrr_EBNe|5`2E=C#p=Zkevv@)DWZjUrN0;(+*PBc&}V`xxM5 z4bM3wxl}T)yj5DNhfz4PWtg+yVxJl*Rl~46hA_jR=@EZ)X`#fNy85$&w5|)_dOLz> zk@}kk3W}m1W}#{6c=WcyY1avAj62UA?;+XXXxzALrFZ~AJmZGIeZ;j+t(wtqmvU~O z4ZAB15Px6DUjPgVsB8EAe7pU4=MP8~U7CC_OAr{Gjy-RZ} zVr1`A^B6$g`gLst6a9KcurwuI^XC0UCR%}!`cFmG07O+S+Un#}snW#NgAWlA z1+7rt6WbR2++)=k?5I!X@Cy2qX+c2RhrF?>a`I&5PLi{RWo$`am0Ha1l3B~J9YT*( zU`IfDZKDD)-H=egQFre;p-Re3)w|zVxOb8gTU*rEvg_D0VwyYawPqh1!za}zfLer7 z?cZpvf0w|bZ+xc+!y|E~eGj4^qh!wa&RFIGGXgwzD9`^6J93I!ime{ln#XBY4kSfR zu$9Rp3!>u-oE$0$cxGh7a(tCU|Dn!sPb$|}hgQkOCo>+u_UPOAI@0mJ%=J*{K8p^y z%709UWyPN7@tu;pTrjPhnUY~@14EM+fu!#5XL|Qj`{LUBf4kpJyKltm+I^|Y;47ZaWVN6(H%2Lz;sOszl|YwB6Z(68dv8# zXIP3mMI~s!a*0M(P$}V;#F2K@54WNvIVpFRN*w-kDCY^{@H|USthfB@?_cBQ2Pw^gRi=oZ6;q)%+Rc@GVzQmm$uon6e0t4gq3yZC$phy=93b4-mu8#~n z)s1nnucy-oN@R-~kYa1E^6q7)sa#_5yM3zSS5Pt=?3Sc{G=u{e%fU6vRGr(lOT0(= zp%CfKwr2LZMk&kcTiTW6TI}ue(yiexm-@u?JYKaxX1);w*VN6<_n#Kg8TIL0gNmz3 z>JGHk6o+a*)Cn4QzR`wa@LXkLL~Cm_G;qIqfre?Uyf8Nmy|z7iTc3fokV$<0y1(N> zN#70}IsNPP(CKzv>2iBBZB=atlD?;@p8({3H^oeY;7XB_*$d4DmIZ0>t9m6)XW)%) zqFa)6ep%~H^!oh1_9JISDhrV~Q*PeARX1%w0q;xF=oR;SITb$2xpfw@Bb(O|UXfAX z9r$k*5tRCH#4cUh>HGSQdO0n}wxktvg1C8lKJaZ7a!?QW*03a0`W?}Mgf7sB&WlRt zR7HFBveb#xgs1$toaJPu6{@M+)wyDfN9uO{7{13@e0g_TUj25)MCGhjkegz`LnW)y zA0oHehvc%6!n-{wu0C}?`vSLujRmA3D7XV(G8#v~ z`~GL1TNzM2pqQy4Ac`%ABCFAKYE(YvHlepu-#h@HDc~p~KKig=|FFI0p4ho)QDjP; zOM|c|hzrZ4Xg&Ysd@kTh;s{O?nCWS9R#(ybjaq9mO>A!r>9Dwr{@qZ!My@qZbk9J* zWP3Sx&(wZniF~(>;Nt|^Nq>>bQ<6riD3>uXLE?Zwjjumd{S!apG2lwPmxcm?Z5Tv-m)bOYUD;1$1Xx-5j5`Ad}ptz zl&xcH--d6?zu`LD;ICwfQyA?pLb61hXjT0p`Pg2Alc&_^o0De<-;}F=sgZQqZ?NEg zRnr~gD7zgjn6yk_>FTmKSSkwF*rC~+x~J}HoOcitx*y2yOnl*rAR3Trc6h)ruEM^WPy4bor@fj zS(1(trM&6u4Z(CPbn zqGp`=J-=54W-jodvzw`ejY#Ft&NP9Goy@d!AZPJVxSlSR!?T)lPwJi?o-wK;H4$0V z8cVXta@Ks>$BhZQXAGjhGi`N7qbbzxM>Tq2_dLNCVql9&)u3=KwJG~1UWk;UYS=>9 zGJq+*Rh~~x=T3G$@k8tz;$A#Ze5nEF<~q(SanY^!MRx{w3VdvOR<1XxB2N4!4rY~< zlg=6#c5_1nXL)~GW4}U!-}6jIA8UH6BIfO>*Y}^gusA*WvA{du*X6LRwj-6z7|ANY z1E~)BnejAAnD5N$uFuw%)RPRi6_QeU@UE*en`Fp_P|;=htJ`HJ+7s~e6tme%L$=YA zS8epy=!9}4#XYmv&-CxF*|YbEdJ-i(VM(2lq@C)lv)>-xeh^63!}HS&n3txeJe-OO z&arxYaeOfRnS)fvoTIk1TF%~OFdvLi!OS+ZfZ+hvUK2pfHCVJPn_)GN)7_}BT}Mdg z_v3}iObO`ZcjQMu+jUK>zJxiG5DLp^w)a3M{0Pi9-|&)KC1U&q98<%U%)VEXxF^vMu2o4GAvNzSOdGV5~DNq zU8ujfY8r;EfxCprf1c15Yc1(?(*em_0Fp!x0tGBHf1T4HoR4bv#8PQNk|Vs8!+e<^ zeusaO6dLJ)SYJ|P;;e7r#!xdK+n0&KcD=Ntoi^vZmXo)5*+<}`Y{^eLpfd}H>Tkt- zRC{oWy@P4F?eqLzV)Wv{$6I2I&YxV>FkK#O&|Pt^C(qFI7D+L#hZKbdtxfFpsk>0? z2)K3^F>(6Un;4957~(<~Ii4;XH566rd>UcQHnt>I(k}P2x~HuAp++ZEdlxp4BS!13 zD$x`*n@PPoAZEqHewgAb2rUT-HCI_-&?>Jo@POb)d3;m?erdw$GOlK%fy@*+9l~cu zZJZ&z%mRi6>dl+4AwAEhCKDnzgTGXcWH5QuZb$37P#P$SkOhq{%`D;)hzwcHTP8It zYOzPCHQYS66*nDX^Y;%2HX9ushS4Gvv`@d>{MzC#o)Gv*DhH21Jmj8xnB*aA6PD5L z$I8rXFb&Z>_TG+Pv$7yBYw#0J&ho}pvh|8r%O2(A*;pzsd%i)Y2(GycVESFI^7>(IxWXeI>Gp(J7#}XdEgK| z_*0Jz(Er#~^#r6F)Dil?5?Ip#gIOTs;X9FjT3)`eISV8)&)>dTx&S5 zHCWKa85{k8ufAOU1ffSDFIaRr26bavUzEm+T{EqaQ|;(#?kta!9>O1=C z=sw$Lzm-|fyBQdCu3cBj-=Yv(tIwGlw18#DWR7$r3shw7K0(m1oXzFIi`Y0BOVzZz=?3Aw&-zl9diof=rCT`sZQDR zL=pQlG&C*+(bThHBsWTp6Q-%nNQkv0lf%y2*fgxVJ)eYq6*n`jlcX;?+9yFDP^FSS zR%P`QSI5Uu5>qOr9ztv&Oxc=Dt5NhLHmc$P{beTR8{Z&pb_wuhNDh%NR;>Gdm$vXT zFD`4LL7d+TQ7_Lv`}$xG+-hVO!TwE!{#QhB3k+^}QF2c;(VhQd%#MlXCy&Y9`v{ud z03o%W)6%onN9?NO=CtE(ZL2SS5dL2FUZPe63?zkZy<)1^sHLFu%+8eIvrIIuamG2Z zmoqC%9yN*V3Oe)?8xk#Y+4!ZSEH*9auf&@j@MV4L`CxZ{87~RW@)I~K6loqR36YN8?dqr?6>S|xNAt47L<|Y1x zGCWrIIgTrK7C_cKfFFkimsO_iZ~_{`VNK;!ESzMiK^xrC&ptk*Uj!syM!tE4pbO_`SCz zuia+__RDV>UJEuKyOPs?(N4gKav)v*e%*Xm1aFYpV;e7vpoh1Z*K`BT zcq(DjnTU0pI#2|EPENavz?)f3%a}HRx78Qs*h6%WI(@_H)22?YeKhlaCamM=8a-bB zt|K$v@s4!jl=-%=EI|)8c&`2^r2S&!*}pt=*@aFJ^WxM+#Y9L%GbA%Re+#0 zvCu<{_UQPb>G&qQ#VH4)8?Das=(iZ+AFo4YC%lAnwZy#PHi^IJc4H>C9?Y@tw-rq# z{fOaboe>_k1TG9P_Cqxu1~Ypcc%GrWC|~eUACROfYwbJISIQQ+Qr_xHlO;*&EX zCUb$RjFKuRx3EpXYX_F-QU?i?ihF6Um4>q zbIm!|TuF+Qbg&S=qRFyARMxDfb@_*4?=`+hCqqk=1`5v!;w4E@S}Zc{%{%~r$aW8GGT$r^ z=()u{z4}IAgAJX-glKbzf^DQgPYj1**8~&{DE5<$ z?NXqusgay7?hxSAO+dTe8e&7fdW;JK=`Rl6kdvM70FS0{*%O6i2VJ%cqD;hk<=#ut zAS`~l96ybrU4F4?QR|`l$zg0?&J^p)%%rs77Q08Fy0J`YapO^JZn=oZCM-!-I?wCK z*5Oe14Y>XNo2II<+8Ey4&)c_2I;@JmNE6##^kd#>4MV%b*%ezcQ`<;xH7^|z%8=%Y zB_OmGV{bT>HtDp2v+|4I>aO^q-}{?K`a9FsMZ zAL(QqD5WJx$a_JVK2J-~1BU9{8go5bU`3ny%{J*9(Mga*_fqsX>SbPI1W}PMr}R~h zbqyzTcOs4G_9vrvM>IF50_@eo?-bzv%^ekgI~+5<$pW%^q9T?TS)V9!GHL@hy6`FY3@JB z0thTzxqIn5HVPlOXbxC^`Uoot}P?UPthT2$fiU#TAGBB9f1>^p+fKM!4LH zE1!Jq>UA5cuHT^rXA%cW({4Y0WTGagLKBurPK-;sne-ww_37RNrqgB!f}U=XW-qtg zX04lz{Yu8-JtH!6m`RRXsS7<#Pmp3=D570VmXz_k4o$3)UQ3K@{niuT|6<)a!R@-bQhfQ^tfIO6^A5XHP%UC%nZLwKhJ+X+2fC zy?`r-bxVLH!(>4XoFnZ}P8nwnl4I|}^i=~%Qp>rr=sc$l)r=*Gsw+Eo>57pCMGPu5UF?pksJuH7@2q#6E9vZ==Y==V zZ?wVu6x=3)#3AqM$)J~Oo~g~okwDDajqfSXhP#uqXWH%;i&+@;QaX3|=WfcZukiX6 zo)`1azLnMyAKJ~BNr4%r2xFz>=XymOnt73$LQpq8hR@lloz5O%eiv&Y4tK~XZnam5%PvzQ=^_!Q?wu$YR$a-E> zgKX!qLAawI0&!o7#K++ESJ!$j*}il=cVije{jP$0TRUTp%^APBx(S&^a38S@9C^fd zO{~d_Cak6i%4(UC=SFG7*UzM5k10Qr8bRK@{tk8is@s$x&9s0|N}88M*B~h#8Zv7n zPi)%~_c9TOeb0LgLowr{x+9eQ?Pe-Ahs8D{-2Cv)iqp(3=gTd4RWi@c?SALFyQ% zj@{3scEjqH<`>OII(@(4_+00k=(&Z$t})~orqqQMD+U}mJk5q(dhqTsC0CkOko)`e z2D+tVSX9j<+jR@$fbuRKVZs}UM`+7pfA#bL;oh20kh;_d=NHfY2#pPp1}5FA^fANH zj;tHWyZKCJp2Y5C`xRWD6~Wk)3)=RT@4&W0i%I2m8{k_9bcQJArE0qipXwtw@{Hd! zb@D(S`#+O6EW@^%*6}6?e>J}8Q$~gg2xz=R3a-%LnY0g=Yq&P|G|2$2VGNxnK7>f9 z8FL%kUDZ$;k|LEuvbP|Z)3>z8t-UVf_2qbf^x@gum(Z_&+8g2-C}X{a#AK3Ra!fWb zcs)gE=QMgzY%JrhzSqsAgwZ89i=UH~_C_~j=cVCG8gDx}l(osM*H?8PGSsaX3=7Ah z7OVmvc@6Orp%wowztDnp{S0)a$+>mE*D>plPYM9hMfl`k6)NOANJPSV_XRTp-&I`y zNgEeYB>xv}oV%R6++QjFbd6vBL|5~JUEr$`RXUa5HBYjG_#Ax=GRojptBrZZ<|bN5 zQJxi773%Tx%jzf?A@b;@Q^1ik!eo6VlS&>Zh7mrcsB29{#DFoS{-kFh2y1-!%; z02}ea+Rng^={I0NDFSBLtP%DytB>>8uFH0L`!mpdH%gc=Hl3{&H;IG)x>+9~q&_!2 zZyrNS(2WeYAR&ceVkh=VOAs+v06|J)sN|o`c#8v_0@Rb}Z+lIOr|Gv)n8ZB*Q#O+U z>5!~7fGo$iK$CkT`$GRF-2t!KZ|Q7`{2YwwZ_8Z9(@a|U?))JgsFPBKkwQ>S;GOW| z1+y8!$nTi_%6+cXjL(h7yhKPaC61CxJ;KRd7SQLX`eSX&`1|WFC#$VpKOX=v&@hJ? zmtzJe#P5zV#xj6+uKg4zfd9yyY8p&&y%wM<@z(wPk#^No+r27s>gl|Wb&ci$81zA{Z_t57zHEZ>%r{51vpw# z*s-zM;gAvU{4fwZP=sRM{5~x~pA@R~T%AXD2Vx`V3=|{ro(0Q=lqGquAO*vsO#$zn zfiR`b6mI}8$N`XhfYdJ)``el{fh#f(l=i0(W!|)Rh?xWOTEe2~CF2Dp54KBn)mrH8 zSyA`g+xsI=;%|rz>_r0KvZ=bI5ghQ-rIe|qVJt>6!B|MvZy zKb0j|eg|6?w*o|dMdFY zP=yj^skXrJ_!e{iOV{ejTMY(xKLS-rj+wW?gjfh_8(xoo53Ok!uP9f9pU-k5uukh( zxL?^T|Cv4Jak)SDwwa3+&nJJ0!go6(1U5?2jBIZLYhz>+YSWj??vjTWk)C%R9)|mZ zZ;$9s_Ai@u3nv3q%nxSP;cBh{YbxfXk$WQkrgLS&s5=nLzFR;xQgH~hVG^@pKMvvY*vW?29y6~rd(A}d11Ewt8CU7e zm*8YFP8~GJ4uFDDrgK3Ps_9p~ux|gVFDbuJK#eE&fp2YiZ9b|HUJsoz?Gr68*elte zK~(4GJ%-QUwnQO09x#)>DwNUpj5ma=H@57&gVF{hY2Tgh-*#kB(swj}Do>d*Cx3Sv za&u&hv#K`SNplGjMGtO_cqiyH=!8AdeW{6YE-Ex#(7Mn>cOYHCg>`(;m=`vsEWP;Z z!q5;R^6;=cnu|>Pn#Wi6K(|+)P<`Ts-3HzkY}o3ohf+lj0mKuJs#rN*Ch@FESKLse z%z6=$Ye)0FnP;vd#LAp?t70qz{CXPf)UmS5nGQo}qzL@+o3hmzv zKDm^64k`ktw+6f%dYc1oZMmOZGRHiRDmEX#$}%6I(YpKtRKc1$pB@(A6yR9s`=F^0`>ZC3k)3AQtsnQ^S^!ARA zOBUT{!$BCCBG-xq4W_fRbb@ON?Id3%__3Xg-z`iC9qm~G$2!dW=`gQk?@+)u@~;yY zu6QrM|Gde+KAWe#ImtK+jVqx|{gmcJ%bt{4{;k&qbn}(KJ06~ohO&loJQ5_{4;C(6 zx6;XfSi8U9l45Vr4{m(k&%C&A+T(d>j?TJ97~T`B{Dd9#J#VDOT*t8fM9W;6!(PTC zZO6}{9;gXd)mc2AokUl{eyN2&@nO!F74ZNyAclfZk9upRQoGf??$T+x`GuGwVD?arodn`sMm zmE(JciQSHlLIWL3wEZq$8UwmMOO|Ok|z1EvDBn`%r7(w*$#X`|*_Zh1bvG>O9FOx;CF8lu^7^$PJ!SX; z2cm6>{oxN=N8BdVr@qun5BX<51+wK)hyu zvZ{3g!QPCas{THUwD1r6ss_D}17WP^uEhE7@WI`_6?nSR*YmM5xH(|wc;pfNWF@8_ zpz2az<-d%yRok^sNsiMZm+Kw^6+qwPk1i{ZAjz+QCnUYuvEqzq~(Y>(zt@2 z_vt5id+86k63Ba4II|G&OTYf?j*V^nk|(R1pWIb%0^{ecxHYfnjqT5T7|6W+sPQzU zPq2b>H~Hp=0r$%Z(l}r{unf$GEV`e?n<$JX939sK`dzo76nt{mXFSHiL+=aT)rZV+ zKbzxSR6FTgk8`{>)}GE>)5u^jL6t^};_;mAD#(~($(_y>vbs=hc9n0t?(Xu^~XIwi%8Ms&~7se$(BI(%EM@v%h`KPJs8WpnQu)*A7m zXpvK{Ye)-DnpM>ol?3rf%g<2v)vt7#an5bI^Q)u_1xCaK4nie{p9%|B>~R@g+B7)1 zk)?g`h%m@j-fA~xf09B@i{f5wRo%1iKw)jj9S~uLqmv7qA<2o-wL4)_*Hu(oqX_<~ zXoDqS0JBHO$h(zkU>PMiG528+xz!bo&>YW&K;p>uBxqg=G~{XeZ!bEeILdP8lvt8q z+F=akN51YlcTRSBq6LC-`?_kP(2{6r+H~az`APOc{aQ)9_SJwA${;9tc;7mEv?&no-S)z{36+hypMqe11VlZ!Lu=!hC5`{qdfaB zm`wM_O6N2`?F)JsRjV z+PoQ82mL4~xRIibgLy_htQRLU?*bei-3fr6UK@O+exwGQtrVtTZ$_}usR%dsu0&Q< zk2!aXVN9lVLQ%{?qXRDR)7n6eWXUN`CAkf`rtN4yo2K*@U;EdTP$kA##sp3_I$98n zK&NQ*b7iqv5oEq~LVwEN>hncb|KwBIj46&Y(0U+UM9vDc)ADn)>dQf+*w=Jlr8U3X&5zi&)#wA(=b=(Ut4;V9%6QSWurC2#Y_kqJxAZ0JR=))yB; z87*7Jf-N%8Hbq?mS_15LBGl>b3EDr7gu8t8%VSD`ihG^wy z(>EaAZLfE!Dr06k=zfFg>%IQxQHG50@`b>RyXK3f7bhmwU0g18Qa+@kQ6migVjvx@ zSwzC#^~#L1NdLw6s008->hdK}CH#vK@^^EkKo`sjb|kgoh;IZEc~?GFI8-p6)|`PB zrfVyX*8%uA#~=tMy8>`ZPBQUd*vY}WLcmV{h~f7P4c7nTDV_S$3LHRMZck_0 zKDWxq53E4fv|%l(v<(;es`y}!T!_>m5FdvQCOxI@BsBgwAAz#NGVWo9|7b;(E~?Ub z?4SYT)F+3UEqiQpkwUKR9gp<-l|2cz?u~$%LVFsiaIewsd~|Tc66=VnUH(*qFJp1l zvKtt@;W6{o!RInc_V87-5=o{7c5|P&wT>s`YW#d6iv0>zsS;7&Jn88gZvnZYeFS-f zM!p!Hg{Q4`PY@e=2I4?$d$wY}vj0T396G>1o%1~V*~jrWf#|>s&?l(&?;L#9fe4R7 zrOAwzb=}Sr8=tFiVmGX12T82YDZ1cfT=!1ykAWPizOIZ(mbPM7f3dks>X!R3oIVdu zQau>4V*H2eRk&}?N+<81r#zn+}F#g&zzUW$~ z6Eh!0n=EakxV-Yf6v-*t@?VXCR=fS@2)w^3cb&gLCE$0S&+nUdaxL=svOb;a2swr1W_jiS|Ggug1Yzw{(Fh@nJw>^ZixE z@UMV!NB49!8N<{65yOiA8N;BTLV$4oQ-~gHBXlM=R)(b= z&p~lDS>+^M?I!-PP+a%!Rl5xv81@nJcU*#h#ii~U=t4YzZqoY$I7?hBwvo4(e*#F{ zzmWLv7ytJ*fGSr%$M#p(-yk&JbR6uMM^A^R6GW`;-+l_-LUV$9~ zVfn25^8EA$$1E%|gVGC30dKrk4fk^27S)hOT1~8JdsiwHW*6rAzx9z`1rj1i&%XXI DhiTtu literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_gui/py_image_display/images/opencv_screenshot.jpg b/doc/py_tutorials/py_gui/py_image_display/images/opencv_screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2ef7d348d19b6fdb0dd9d9c02dce54502d70fe3a GIT binary patch literal 25734 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 aX5{2(9XDC|NJZJwH{NYL0tD1wPyH9KL==Aj literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_gui/py_image_display/py_image_display.rst b/doc/py_tutorials/py_gui/py_image_display/py_image_display.rst new file mode 100644 index 000000000..0f1b35ae8 --- /dev/null +++ b/doc/py_tutorials/py_gui/py_image_display/py_image_display.rst @@ -0,0 +1,139 @@ +.. _PY_Display_Image: + +Getting Started with Images +***************************** + +Goals +====== + +.. container:: enumeratevisibleitemswithsquare + + * Here, you will learn how to read an image, how to display it and how to save it back + * You will learn these functions : **cv2.imread()**, **cv2.imshow()** , **cv2.imwrite()** + * Optionally, you will learn how to display images with Matplotlib + +Using OpenCV +============= + +Read an image +-------------- + +Use the function **cv2.imread()** to read an image. The image should be in the working directory or a full path of image should be given. + +Second argument is a flag which specifies the way image should be read. + +* cv2.CV_LOAD_IMAGE_COLOR : Loads a color image. Any transparency of image will be neglected. It is the default flag. +* cv2.CV_LOAD_IMAGE_GRAYSCALE : Loads image in grayscale mode +* cv2.CV_LOAD_IMAGE_UNCHANGED : Loads image as such including alpha channel + +.. note:: Instead of these three flags, you can simply pass integers 1, 0 or -1 respectively. + +See the code below: +:: + + import numpy as np + import cv2 + + # Load an color image in grayscale + img = cv2.imread('messi5.jpg',0) + +.. warning:: Even if the image path is wrong, it won't throw any error, but ``print img`` will give you ``None`` + +Display an image +----------------- + +Use the function **cv2.imshow()** to display an image in a window. The window automatically fits to the image size. + +First argument is a window name which is a string. second argument is our image. You can create as many windows as you wish, but with different window names. +:: + + cv2.imshow('image',img) + cv2.waitKey(0) + cv2.destroyAllWindows() + +A screenshot of the window will look like this (in Fedora-Gnome machine): + + .. image:: images/opencv_screenshot.jpg + :alt: Screenshot of Image Window in OpenCV + :align: center + +**cv2.waitKey()** is a keyboard binding function. Its argument is the time in milliseconds. The function waits for specified milliseconds for any keyboard event. If you press any key in that time, the program continues. If **0** is passed, it waits indefinitely for a key stroke. It can also be set to detect specific key strokes like, if key `a` is pressed etc which we will discuss below. + +**cv2.destroyAllWindows()** simply destroys all the windows we created. If you want to destroy any specific window, use the function **cv2.destroyWindow()** where you pass the exact window name as the argument. + +.. note:: There is a special case where you can already create a window and load image to it later. In that case, you can specify whether window is resizable or not. It is done with the function **cv2.namedWindow()**. By default, the flag is ``cv2.WINDOW_AUTOSIZE``. But if you specify flag to be ``cv2.WINDOW_NORMAL``, you can resize window. It will be helpful when image is too large in dimension and adding track bar to windows. + +See the code below: +:: + + cv2.namedWindow('image', cv2.WINDOW_NORMAL) + cv2.imshow('image',img) + cv2.waitKey(0) + cv2.destroyAllWindows() + +Write an image +--------------- + +Use the function **cv2.imwrite()** to save an image. + +First argument is the file name, second argument is the image you want to save. +:: + + cv2.imwrite('messigray.png',img) + +This will save the image in PNG format in the working directory. + +Sum it up +--------------- + +Below program loads an image in grayscale, displays it, save the image if you press 's' and exit, or simply exit without saving if you press `ESC` key. +:: + + import numpy as np + import cv2 + + img = cv2.imread('messi5.jpg',0) + cv2.imshow('image',img) + k = cv2.waitKey(0) + if k == 27: # wait for ESC key to exit + cv2.destroyAllWindows() + elif k == ord('s'): # wait for 's' key to save and exit + cv2.imwrite('messigray.png',img) + cv2.destroyAllWindows() + +.. warning:: If you are using a 64-bit machine, you will have to modify ``k = cv2.waitKey(0)`` line as follows : ``k = cv2.waitKey(0) & 0xFF`` + +Using Matplotlib +================= + +Matplotlib is a plotting library for Python which gives you wide variety of plotting methods. You will see them in coming articles. Here, you will learn how to display image with Matplotlib. You can zoom images, save it etc using Matplotlib. +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img = cv2.imread('messi5.jpg',0) + plt.imshow(img, cmap = 'gray', interpolation = 'bicubic') + plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis + plt.show() + +A screen-shot of the window will look like this : + + .. image:: images/matplotlib_screenshot.jpg + :alt: Screenshot of Image Window in Matplotlib + :align: center + +.. seealso:: Plenty of plotting options are available in Matplotlib. Please refer to Matplotlib docs for more details. Some, we will see on the way. + +.. warning:: Color image loaded by OpenCV is in BGR mode. But Matplotlib displays in RGB mode. So color images will not be displayed correctly in Matplotlib if image is read with OpenCV. Please see the exercises for more details. + +Additional Resources +====================== + +#. `Matplotlib Plotting Styles and Features `_ + +Exercises +========== + +#. There is some problem when you try to load color image in OpenCV and display it in Matplotlib. Read `this discussion `_ and understand it. diff --git a/doc/py_tutorials/py_gui/py_mouse_handling/py_mouse_handling.rst b/doc/py_tutorials/py_gui/py_mouse_handling/py_mouse_handling.rst new file mode 100644 index 000000000..2aa5c27ee --- /dev/null +++ b/doc/py_tutorials/py_gui/py_mouse_handling/py_mouse_handling.rst @@ -0,0 +1,108 @@ +.. _Mouse_Handling: + +Mouse as a Paint-Brush +*********************** + +Goal +====== + +.. container:: enumeratevisibleitemswithsquare + + * Learn to handle mouse events in OpenCV + * You will learn these functions : **cv2.setMouseCallback()** + +Simple Demo +============= + +Here, we create a simple application which draws a circle on an image wherever we double-click on it. + +First we create a mouse callback function which is executed when a mouse event take place. Mouse event can be anything related to mouse like left-button down, left-button up, left-button double-click etc. It gives us the coordinates (x,y) for every mouse event. With this event and location, we can do whatever we like. To list all available events available, run the following code in Python terminal: +:: + + >>> import cv2 + >>> events = [i for i in dir(cv2) if 'EVENT' in i] + >>> print events + +Creating mouse callback function has a specific format which is same everywhere. It differs only in what the function does. So our mouse callback function does one thing, it draws a circle where we double-click. So see the code below. Code is self-explanatory from comments : +:: + + import cv2 + import numpy as np + + # mouse callback function + def draw_circle(event,x,y,flags,param): + if event == cv2.EVENT_LBUTTONDBLCLK: + cv2.circle(img,(x,y),100,(255,0,0),-1) + + # Create a black image, a window and bind the function to window + img = np.zeros((512,512,3), np.uint8) + cv2.namedWindow('image') + cv2.setMouseCallback('image',draw_circle) + + while(1): + cv2.imshow('image',img) + if cv2.waitKey(20) & 0xFF == 27: + break + cv2.destroyAllWindows() + +More Advanced Demo +=================== + +Now we go for much more better application. In this, we draw either rectangles or circles (depending on the mode we select) by dragging the mouse like we do in Paint application. So our mouse callback function has two parts, one to draw rectangle and other to draw the circles. This specific example will be really helpful in creating and understanding some interactive applications like object tracking, image segmentation etc. +:: + + import cv2 + import numpy as np + + drawing = False # true if mouse is pressed + mode = True # if True, draw rectangle. Press 'm' to toggle to curve + ix,iy = -1,-1 + + # mouse callback function + def draw_circle(event,x,y,flags,param): + global ix,iy,drawing,mode + + if event == cv2.EVENT_LBUTTONDOWN: + drawing = True + ix,iy = x,y + + elif event == cv2.EVENT_MOUSEMOVE: + if drawing == True: + if mode == True: + cv2.rectangle(img,(ix,iy),(x,y),(0,255,0),-1) + else: + cv2.circle(img,(x,y),5,(0,0,255),-1) + + elif event == cv2.EVENT_LBUTTONUP: + drawing = False + if mode == True: + cv2.rectangle(img,(ix,iy),(x,y),(0,255,0),-1) + else: + cv2.circle(img,(x,y),5,(0,0,255),-1) + +Next we have to bind this mouse callback function to OpenCV window. In the main loop, we should set a keyboard binding for key 'm' to toggle between rectangle and circle. +:: + + img = np.zeros((512,512,3), np.uint8) + cv2.namedWindow('image') + cv2.setMouseCallback('image',draw_circle) + + while(1): + cv2.imshow('image',img) + k = cv2.waitKey(1) & 0xFF + if k == ord('m'): + mode = not mode + elif k == 27: + break + + cv2.destroyAllWindows() + + +Additional Resources +======================== + + +Exercises +========== + +#. In our last example, we drew filled rectangle. You modify the code to draw an unfilled rectangle. diff --git a/doc/py_tutorials/py_gui/py_table_of_contents_gui/images/drawing.jpg b/doc/py_tutorials/py_gui/py_table_of_contents_gui/images/drawing.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1557fb4e713f24b4cf0259f4da5211d24a2b0827 GIT binary patch literal 2563 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_gui/py_table_of_contents_gui/images/image_display.jpg b/doc/py_tutorials/py_gui/py_table_of_contents_gui/images/image_display.jpg new file mode 100644 index 0000000000000000000000000000000000000000..93c0ad8a281c809456074ca1a37fec822fb17cfc GIT binary patch literal 2577 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_gui/py_trackbar/py_trackbar.rst b/doc/py_tutorials/py_gui/py_trackbar/py_trackbar.rst new file mode 100644 index 000000000..1db29851a --- /dev/null +++ b/doc/py_tutorials/py_gui/py_trackbar/py_trackbar.rst @@ -0,0 +1,71 @@ +.. _Trackbar: + +Trackbar as the Color Palette +******************************** + +Goal +===== + +.. container:: enumeratevisibleitemswithsquare + + * Learn to bind trackbar to OpenCV windows + * You will learn these functions : **cv2.getTrackbarPos()**, **cv2.createTrackbar()** etc. + +Code Demo +========== + +Here we will create a simple application which shows the color you specify. You have a window which shows the color and three trackbars to specify each of B,G,R colors. You slide the trackbar and correspondingly window color changes. By default, initial color will be set to Black. + +For cv2.getTrackbarPos() function, first argument is the trackbar name, second one is the window name to which it is attached, third argument is the default value, fourth one is the maximum value and fifth one is the callback function which is executed everytime trackbar value changes. The callback function always has a default argument which is the trackbar position. In our case, function does nothing, so we simply pass. + +Another important application of trackbar is to use it as a button or switch. OpenCV, by default, doesn't have button functionality. So you can use trackbar to get such functionality. In our application, we have created one switch in which application works only if switch is ON, otherwise screen is always black. +:: + + import cv2 + import numpy as np + + def nothing(x): + pass + + # Create a black image, a window + img = np.zeros((300,512,3), np.uint8) + cv2.namedWindow('image') + + # create trackbars for color change + cv2.createTrackbar('R','image',0,255,nothing) + cv2.createTrackbar('G','image',0,255,nothing) + cv2.createTrackbar('B','image',0,255,nothing) + + # create switch for ON/OFF functionality + switch = '0 : OFF \n1 : ON' + cv2.createTrackbar(switch, 'image',0,1,nothing) + + while(1): + cv2.imshow('image',img) + k = cv2.waitKey(1) & 0xFF + if k == 27: + break + + # get current positions of four trackbars + r = cv2.getTrackbarPos('R','image') + g = cv2.getTrackbarPos('G','image') + b = cv2.getTrackbarPos('B','image') + s = cv2.getTrackbarPos(switch,'image') + + if s == 0: + img[:] = 0 + else: + img[:] = [b,g,r] + + cv2.destroyAllWindows() + +The screenshot of the application looks like below : + + .. image:: images/trackbar_screenshot.jpg + :alt: Screenshot of Image with Trackbars + :align: center + +Exercises +=========== + +#. Create a Paint application with adjustable colors and brush radius using trackbars. For drawing, refer previous tutorial on mouse handling. diff --git a/doc/py_tutorials/py_gui/py_video_display/py_video_display.rst b/doc/py_tutorials/py_gui/py_video_display/py_video_display.rst new file mode 100644 index 000000000..56946bc5d --- /dev/null +++ b/doc/py_tutorials/py_gui/py_video_display/py_video_display.rst @@ -0,0 +1,132 @@ +.. _Display_Video: + +Getting Started with Videos +***************************** + +Goal +===== + +.. container:: enumeratevisibleitemswithsquare + + * Learn to read video, display video and save video. + * Learn to capture from Camera and display it. + * You will learn these functions : **cv2.VideoCapture()**, **cv2.VideoWriter()** + + +Capture Video from Camera +=========================== + +Often, we have to capture live stream with camera. OpenCV provides a very simple interface to this. Let's capture a video from the camera (I am using the in-built webcam of my laptop), convert it into grayscale video and display it. Just a simple task to get started. + +To capture a video, you need to create a **VideoCapture** object. Its argument can be either the device index or the name of a video file. Device index is just the number to specify which camera. Normally one camera will be connected (as in my case). So I simply pass 0 (or -1). You can select the second camera by passing 1 and so on. After that, you can capture frame-by-frame. But at the end, don't forget to release the capture. +:: + + import numpy as np + import cv2 + + cap = cv2.VideoCapture(0) + + while(True): + # Capture frame-by-frame + ret, frame = cap.read() + + # Our operations on the frame come here + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + # Display the resulting frame + cv2.imshow('frame',gray) + if cv2.waitKey(1) & 0xFF == ord('q'): + break + + # When everything done, release the capture + cap.release() + cv2.destroyAllWindows() + +``cap.read()`` returns a bool (True/False). If frame is read correctly, it will be True. So you can check end of the video by checking this return value. + +Sometimes, ``cap`` may not have initialized the capture. In that case, this code shows error. You can check whether it is initialized or not by the method **cap.isOpened()**. If it is True, OK. Otherwise open it using **cap.open()**. + +You can also access some of the features of this video using **cap.get(propId)** method where propId is a number from 0 to 18. Each number denotes a property of the video (if it is applicable to that video) and full details can be seen here: `Property Identifier `_. Some of these values can be modified using **cap.set(propId, value)**. Value is the new value you want. + +For example, I can check the frame width and height by ``cap.get(3)`` and ``cap.get(4)``. It gives me 640x480 by default. But I want to modify it to 320x240. Just use ``ret = cap.set(3,320)`` and ``ret = cap.set(4,240)``. + +.. Note:: If you are getting error, make sure camera is working fine using any other camera application (like Cheese in Linux). + +Playing Video from file +======================== + +It is same as capturing from Camera, just change camera index with video file name. Also while displaying the frame, use appropriate time for ``cv2.waitKey()``. If it is too less, video will be very fast and if it is too high, video will be slow (Well, that is how you can display videos in slow motion). 25 milliseconds will be OK in normal cases. +:: + + import numpy as np + import cv2 + + cap = cv2.VideoCapture('vtest.avi') + + while(cap.isOpened()): + ret, frame = cap.read() + + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + cv2.imshow('frame',gray) + if cv2.waitKey(1) & 0xFF == ord('q'): + break + + cap.release() + cv2.destroyAllWindows() + +.. Note:: Make sure proper versions of ffmpeg or gstreamer is installed. Sometimes, it is a headache to work with Video Capture mostly due to wrong installation of ffmpeg/gstreamer. + + +Saving a Video +================ + +So we capture a video, process it frame-by-frame and we want to save that video. For images, it is very simple, just use ``cv2.imwrite()``. Here a little more work is required. + +This time we create a **VideoWriter** object. We should specify the output file name (eg: output.avi). Then we should specify the **FourCC** code (details in next paragraph). Then number of frames per second (fps) and frame size should be passed. And last one is **isColor** flag. If it is True, encoder expect color frame, otherwise it works with grayscale frame. + +`FourCC `_ is a 4-byte code used to specify the video codec. The list of available codes can be found in `fourcc.org `_. It is platform dependent. Following codecs works fine for me. + +* In Fedora: DIVX, XVID, MJPG, X264, WMV1, WMV2. (XVID is more preferable. MJPG results in high size video. X264 gives very small size video) +* In Windows: DIVX (More to be tested and added) +* In OSX : *(I don't have access to OSX. Can some one fill this?)* + +FourCC code is passed as ``cv2.VideoWriter_fourcc('M','J','P','G')`` or ``cv2.VideoWriter_fourcc(*'MJPG)`` for MJPG. + +Below code capture from a Camera, flip every frame in vertical direction and saves it. +:: + + import numpy as np + import cv2 + + cap = cv2.VideoCapture(0) + + # Define the codec and create VideoWriter object + fourcc = cv2.VideoWriter_fourcc(*'XVID') + out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480)) + + while(cap.isOpened()): + ret, frame = cap.read() + if ret==True: + frame = cv2.flip(frame,0) + + # write the flipped frame + out.write(frame) + + cv2.imshow('frame',frame) + if cv2.waitKey(1) & 0xFF == ord('q'): + break + else: + break + + # Release everything if job is finished + cap.release() + out.release() + cv2.destroyAllWindows() + + +Additional Resources +========================== + +Exercises +================= diff --git a/doc/py_tutorials/py_imgproc/py_canny/images/canny1.jpg b/doc/py_tutorials/py_imgproc/py_canny/images/canny1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2297196d5a6757521f06189ceabc4733eaa09c08 GIT binary patch literal 16496 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_canny/py_canny.rst b/doc/py_tutorials/py_imgproc/py_canny/py_canny.rst new file mode 100644 index 000000000..75c553262 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_canny/py_canny.rst @@ -0,0 +1,97 @@ +.. _Canny: + +Canny Edge Detection +*********************** + +Goal +====== + +In this chapter, we will learn about + + * Concept of Canny edge detection + * OpenCV functions for that : **cv2.Canny()** + +Theory +========= + +Canny Edge Detection is a popular edge detection algorithm. It was developed by John F. Canny in 1986. It is a multi-stage algorithm and we will go through each stages. + +1. **Noise Reduction** + +Since edge detection is susceptible to noise in the image, first step is to remove the noise in the image with a 5x5 Gaussian filter. We have already seen this in previous chapters. + +2. **Finding Intensity Gradient of the Image** + +Smoothened image is then filtered with a Sobel kernel in both horizontal and vertical direction to get first derivative in horizontal direction (:math:`G_x`) and vertical direction (:math:`G_y`). From these two images, we can find edge gradient and direction for each pixel as follows: + +.. math:: + + Edge\_Gradient \; (G) = \sqrt{G_x^2 + G_y^2} + + Angle \; (\theta) = \tan^{-1} \bigg(\frac{G_y}{G_x}\bigg) + +Gradient direction is always perpendicular to edges. It is rounded to one of four angles representing vertical, horizontal and two diagonal directions. + +3. **Non-maximum Suppression** + +After getting gradient magnitude and direction, a full scan of image is done to remove any unwanted pixels which may not constitute the edge. For this, at every pixel, pixel is checked if it is a local maximum in its neighborhood in the direction of gradient. Check the image below: + + .. image:: images/nms.jpg + :alt: Non-Maximum Suppression + :align: center + +Point A is on the edge ( in vertical direction). Gradient direction is normal to the edge. Point B and C are in gradient directions. So point A is checked with point B and C to see if it forms a local maximum. If so, it is considered for next stage, otherwise, it is suppressed ( put to zero). + +In short, the result you get is a binary image with "thin edges". + +4. **Hysteresis Thresholding** + +This stage decides which are all edges are really edges and which are not. For this, we need two threshold values, `minVal` and `maxVal`. Any edges with intensity gradient more than `maxVal` are sure to be edges and those below `minVal` are sure to be non-edges, so discarded. Those who lie between these two thresholds are classified edges or non-edges based on their connectivity. If they are connected to "sure-edge" pixels, they are considered to be part of edges. Otherwise, they are also discarded. See the image below: + + .. image:: images/hysteresis.jpg + :alt: Hysteresis Thresholding + :align: center + +The edge A is above the `maxVal`, so considered as "sure-edge". Although edge C is below `maxVal`, it is connected to edge A, so that also considered as valid edge and we get that full curve. But edge B, although it is above `minVal` and is in same region as that of edge C, it is not connected to any "sure-edge", so that is discarded. So it is very important that we have to select `minVal` and `maxVal` accordingly to get the correct result. + +This stage also removes small pixels noises on the assumption that edges are long lines. + +So what we finally get is strong edges in the image. + +Canny Edge Detection in OpenCV +=============================== + +OpenCV puts all the above in single function, **cv2.Canny()**. We will see how to use it. First argument is our input image. Second and third arguments are our `minVal` and `maxVal` respectively. Third argument is `aperture_size`. It is the size of Sobel kernel used for find image gradients. By default it is 3. Last argument is `L2gradient` which specifies the equation for finding gradient magnitude. If it is ``True``, it uses the equation mentioned above which is more accurate, otherwise it uses this function: :math:`Edge\_Gradient \; (G) = |G_x| + |G_y|`. By default, it is ``False``. +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('messi5.jpg',0) + edges = cv2.Canny(img,100,200) + + plt.subplot(121),plt.imshow(img,cmap = 'gray') + plt.title('Original Image'), plt.xticks([]), plt.yticks([]) + plt.subplot(122),plt.imshow(edges,cmap = 'gray') + plt.title('Edge Image'), plt.xticks([]), plt.yticks([]) + + plt.show() + +See the result below: + + .. image:: images/canny1.jpg + :alt: Canny Edge Detection + :align: center + +Additional Resources +======================= + +#. Canny edge detector at `Wikipedia `_ +#. `Canny Edge Detection Tutorial `_ by Bill Green, 2002. + + +Exercises +=========== + +#. Write a small application to find the Canny edge detection whose threshold values can be varied using two trackbars. This way, you can understand the effect of threshold values. diff --git a/doc/py_tutorials/py_imgproc/py_colorspaces/images/frame.jpg b/doc/py_tutorials/py_imgproc/py_colorspaces/images/frame.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ef10b243c7f3f0f7106afac3fb9e625a5c47defe GIT binary patch literal 8351 zcmbVxcQ{;MyY|*Q!C)}z5H&@KE`lgSwCG)wFhuV}ZwaHf5WSBQKQTk}UK66%=$(k@ zog=^Zyytz-`Qtm^_pNnV!9LxfyV_;xnVxpvB zWn*PzgD^5N{^SceVZQ$^mS0910dbX zApW5ETzsfZRU6gI;oocm<}Semgw!-(S~~Xo9GqO-f=`5mMMTA9pUcTBD8iI9wX}6~ z_4ExaEUjK!+rVvI-P}Dqy}W%wLc_u%-o1}ZNK8sjN&S$Po|j)xSX5ksEd5-KLf6!O zsjF}A=Fw(u866v+n4FrPSz2CMU0dJS+}hqhI6OK&IXyeS_=5`r!1@QQyZj%( z{s%7dJ6xD|Zo$U;g9`)G^Ukoyv2j@Va4DoU@LoAnvhoMvgJj}!tJ(;l0xy44nY#=V zQnLvzvG4zZ_BXQsJ7B^8U&#Io*uQYi0K`}rch18i2c&>i=TWq{BU11uDQb~h4ARFY zukcnqe`>6i*cI0EO2&XXjgfC81LU)>+*9$00jZxigvcRuRMHVlTS2pvM`ay#7mD=me=?rjv*=p@8ohT}6|hL#kZ~0 zXSYCE5jwh+Y5QYkq1zN=hB~PNX1cDZ##ee+>n)(Qko??!?PiCpy?!`xOkK-5r>KDr z5}VTMQWRGtx?aB?4O^4bt=D4-TXQom<@YK$;uiLS)G`$q8CKX}KR z%%7~aCLdL>Vo0RWk)X+ZXo601eZ8b ziZQ%?0e`2;SgEEy9E-2LSLAA^m@;87$&tXMTX0{=K;X^Eo{EE=J?cy>dLdK(;*HT# zdZSiM#W#yBl?qY8HN0?J3wQ@aG(U+ZE%P)6*fSJ!Gi1erjO+bGIDj)do)lxQM5;<+ zP`|>XT4F+3U&Yj9A1`KK&`&l$Z`2LC8E!ccn;}z?lsXbd*5vEdt!rt>>C42Za*fKH zC+C|NAltaxBGyF&`#CXs%U45Rc4B(bF2`$s6qgpE6#-#IrW1LueuRbw+F28~ZNgp` zD*k?%IK?+9JQ`y$LkOJJ^cT+p6pgA0RDeA0pa=@nBFrJp@KwiKsTfChRdmeGN%K<5 zJMH&|>8s`9#cSwpb3`=~{H|OPj`+oVD0r>%pvXq53YWt< z2=d@$&i@g9p13k10WZy58jeHgpz$Y^X<6vs~FpvsQi=kelx z%Vg?)Z3Et4zBTK4A-m=uA%~SdXMGf)j?^|UhSHvbC|kiy28Yq1d6AsJzZur<=Q_YG z--gPBC^;F6)D6w9PEg3RtAV!&p(BnEWZOmRZc5p|oM43uehoFL zpeGwi)EqOfs-559RR#H^uetA$e?j?;U`qz454uC~kWF;_AL}JX)@3HivIEGTMS-p0}6HCCDw_Mn5HuL zxO!t+G@ZkVLe(bSc;+#RuYCIBYcP3?+#3t%MB~Q}Pae$DYO@-CyWykgXM&uGBD9wk zS?J%S^_luS`b^Ri0tisNUz~NJeBZ8)K$f$LJH1y$!nW(DE(L&G^BF(9ywO$j*<%GI zIx{_uAQP-hgAY3j&2VHrb9BdYg%^Y=m?N^7)V1}S`PFj z2fNbxI@V2+M(gZ)sbGTLJl?Uf=EXg_<;VKCzJXdyvIyPiUd_Oa%N44*o9{P5Ok_9Q zTa4`S!_4o~xu#bhQVYK1bBt=#V$yGkawKRasNT4=}!J+K=+ zcBo8W(^~S%luw6Wlp~nbhwc~Z>yD(dTJTN#I?qSLcb#zql(-5n`SGE_B>Xo*PJ19+ z*vS2Z>ib=6F=>#PA1jf-x8I&2SK>?9EwLT-w($LhALzMG=LQg5576Ucd*~!)-VDD5 zf)QT6u*7yT;Yju-t8w!NLlI_cuuWuxsP@jJgPLT$=Y?mx>(1!ru*$MBk)+sp(1N|a zleO0B$_9&Tx46%N-4faCVfVy5+gY|%?$%_y(e!3Yk+4mnuBqhIc}PsCy*BeH11Hw{ zHfLTS;lJCaKQy3s#rNi?=>->0)~ASN;j0+omS0`BKwd(i=s&6#0$Cw~0O9m+lvCzw zis?68R=u0;RZ}s6&U-p;W!2Vi6Om8|qd46H$rHk=#A*K5mDKTD8ns`w*-?o39+ws# zF5V8>9|4TnVbq>5UY6ky9v6HhZ5tk8!3tvXhc=RM*uciCp8|mb$r5vSgU2yM#pU_! zn0nM~E(GaM{VFWmU9TiIV!KhvYxiQsU*BAc>C!ISwYdkN!61Y^Sn_f*Hf=K0=_=*N z&kpHB<1|4HxwmceAPqU--_0*AXUlZDhU<+bzx@r=;67grj%o*HI(Ne7szLNPg1p2; zPF`EVHbQsIY_tM#n0=}%QT0jl<-T&1r=`0rBCxo4MMJErsAbzr=Xlru502A|wVsHl` z9cuZXx6#&=Ss<1(Uymp~#>_@`+3DG)c>4RtBVX};!sq*r_`pVs(VVe3!9I@ePAh@g zISDC7Kp?^5_k2TkjP>4X8xS5%hiZ^V(XxqYVBw$1{A?f(<{p&~8U% z+ty`K%cX^5Qi#lm>t@*0T3O5E?#hC6)AsSqe`k&KS3% z50+x+gE__LcKU&?qxMwzmG+>G&*er-B!>ND`%(F&Ul$Fmo_i3lPb zN!)-5setyTEyKv)k7finx;;!!$V~r)2H64>VmO@%L|S{Qc$uCsEMva6Y8 zq|z;$WHY56TbR>=#@|)hl`gALu^svJi^zA#p{c-+-utX-^Md6B$(gl|=CJRoB0WZj zi3{(z6<24<8?=6b`*x3V@HdP5=yU1EQ=w2OEhDP`ztKUSyfcK_)qR@$>klnQFLf}x zzah5EWez$?lbinMPWv*i`Y-L5ohO)q6h*a`(omtf*~d9C$K;D6>VVJavMgH^-3qT0 zzw?W{z(-p%$pazgLO25b=~IlHm`}~b_j`BGZ-L{o%tVXsLR~vju+Qa~_OKe2PC81T zl-xJ}^_N26hC!C^{_CSzV}owBehZG{N|Ba{x4jYtFMP6&Hy3Dm zv+Q^blVoNIWE5JI4tQqmN-WrOoFtu%rrtfY9Q+}%OG5gwW1g;Y(oMOcOn-?qQl`^z z-C}F^Y!b5n)lvNUVm=p3Qj9cJK!?vsZl1}5u7X1Pv!nyC58c+4GTeGO`oWb#K{vGi zT|lv6>@~iY^!+-MHBn)nrWl=Zs3o`efQmcokE!dFZ8^gz?fdic67`;l%b5Iq#^eu) zpRY;@r1}f6T=CLA2P9it(;&+x%~izogK(epOw?ymSi@56-V^;?la?TBubb78qg@PA zOVzN%R%k6R_~^qRxc2p~oBXpZ(TCk>UJ|{p>7^aKC7Y9b&-P?vpO1~nOxI@6AQ;QG zdGKJ(&PWCETG`2wnk&1~qB7?<8ej4Arn7sVl(Q|@(IOTrzhhAdu}4UFe41Ulh<_Va z_lbK>!D!NXQ3hxErP{o#DUsy8j7Ok%UZ4?w1I6>zqe{8zLB%S1i$oKmOS#96bOz)@ zdd#;#&wNv=-Z=C#qI78;x@NjxiG9}L%>Mn|?poTZD4Mp%G4rh4Xi}J)CwXRr${>rH z*xdv)8^SONfZkzT`5>}XNFdRm2eyCQ;Q}SsPRd?cSS@#w9pEOTLWV@Mw;<~k-bMkf5@Xy8j|@Egc6^OiLqye>YSB{pfb zL^I9(n4!zrIf1FrJ&Ve9owJLh4lSu2t4vboB0laX1GE1*xAIJnbUoX#F7Krz*W_O? z_Uc8ypJauu>vf0{mu}L5tk>TTD>SvPS3hQ?NWykZ;QO>!13J?&0V`7$HBYeHFK7Sl^h}huZ!Pf# zz3(*~rH&y7`iB{lbvm9y90TT}ZUH%V*YTk%`CA~q`}BJ1Zi7+BlholQENt~qS<;S? z!uq~6Q8qrukh&YpVcf25bFp|J&Nw!)s40=I^tQwzK0ZiCGnh={MM3L7Rfd1Qxx8j4 zvz7j_zW#Y^!rJ9sJuMDzEzvHsZufcP(_ML@UwC&IvrId|s0(H>FZ<;jIX!nI%6dGs z)~KD=_GznV#xyzTN9?9uH`*T8SnNbuf7A|nMfRl=<*C6%m6 zb?R!MH7G0a+R9#o&o0|3NByW&PM zo?84@x;|lP24UEeO|#}q)8!3SqX*sn+y~=xh2P#6$d+^tr>eYXD-Dd(To>Ws=`m?E zuaZ#y?W>J$P-GqBb%2fOss*sKn4B z`HD}4Lv{c0M8BG3WklYD;B-Zy*%x^7<9>xYY@ZnP$KR*zbd1%D44V35&J1f=#dbE) z4>p4-s`1uhx>2%}^iaLUbUc01%a^}sXCtN`O04HoW@mpL*37fryg~Yy*XADaJtrW5% zX;LTEa0!-R=q=2pL)-QX?1C?eUvBhfAZfhZwHHVtjyG0_Af2X(b2W-=aO{1vI0?%! zvge6cRjw-JfEyi?2rYGT<_2Px@0^l377*km+Cc)HNG!KTupAI%26fAdQSf_NvjsOw z0Ts^6pEsA;2@Ea5Kd+WqB<+Jzt8FPNXK8DL5}vBd<9HW$k4=Btii&eCDptGLV)waU z+Uz*!8)V|SU(Gb@qlg8-;}HR^^Yu>g8i}99cq*MCBw`#ktNP@TpEHmQ(nX`oDubZ7 zoD2s^93MQ|iL;_h)qShniSdot&VtmjeD{9iBTT*CKC(dl4l~HACsoh*oY2K7Y%Jka zr7>k@nZiSbD4F@5*5Yv+cC3?~XSa@+(TUJg=Ar5nyAKoMoA3K-8)j1(aH)RlJMoAm-6^_n%tX25ve@fdx?I}I&SYj`P#fLMw3kx>QDY& zBThkNl}V|~=Cx@PWsGzG=^tW>lz3lz?ytFb^K0JbfCD@BzACO-zZVFD;g9@7#fB-s z?VWqov>-J9<)ld1Bne2`tnn^u5f?bL_{4=$$0<|hs(eTXCN@l_?enI>1yOjL<4KPq zH$^M5-xKO~(}bSt{UNp3+zgSZD5ic@Ly<+w7(C6<{awQa3L+-(yaU@33l>LhQWD1C z2(k@tBq1ZJu00WvrB(=-X6BEP8*o})nqfDKQegb>#3pTSO#coA9eIX78&>T7I-C?| zds3P*Doe7PGX=&@=l9kJRu5FAcd{!q$B1WmDw@x{mwg{Row!*ikz{GCzI6ZVX0-MZ zFXU=F=#)H8;l*z|GK1ktRHn|3N?kOg9h{DfjsUwVg~4fC5&DBJPM`$2Sd*d;eJO#C z503B$SsrtY)YG?MoF&XI(|h6UvfKipK@K`YhSx<;bdsykvQ>nzUaTxw7vOTFE4Lhg za~9j-aWW}Z5&58L?6WlSkdcCzV0;{#%5XK%uh=VbsQ2{w^s6wRcJYl+S1 zBz}}b>hd=Scx&cB9|RTbnD{RR;c2e|9*0O7b*iR;F?$#4K$ag;mTwl@spH~)#nn;a zQJC9DqCIf-R<^9m6|}z~;Ue46KU0e705->cOu(Qjigf!)fW+i6N`S5ej&|DvX5bXozvCLb6c`BbJxK}uLE zwa_Is;NDvc!L~%h4CRv`=OzuU^B^I-UIvdf|InClv_JHYqb9dpyGiv<;@RDxo0B)p z&GVl)6kE}{K2TA<1*p!llwtN(;{{%8C~DOr!F9j|x^*hOO4?l)U$%Wxk24X1Ge5__ zEtldYfo7TW-=UCq5$%z%yhv~H9=qn@HVLmA%UZ9Bw5h|3daH?dVkliYKt7V^^+t&m z87_p)kBP_a;zBCjcl_klmFEgYW#()7Ic%N1dhp<8p8arc|3RrY)|8Kq=w&j^X>$@+ z4F||Q?n-7qy7Rrn%g5nOE=-4E{r}%swoU_ z-0k4c^dNLw63+#4^qEHNph&SU4Fo$Q7!FMnUldG~bR0_R}V-o@`fM|0O#OpQH} zMo2bio;S2G{d^7yQWq}{Xl#4UQ3X_eY@nh!wb*ptwt*mKW@5;)nD~=(;(ht6{UK7t zluHBd3%zR0M z`0ZJ8_GcP}4a4rHBpt+L&K_mFvR~osDOw%eMPTl@X6u1q)hn}Ai}LGFQmczsnzw){ z(Jhb@x$>6m?v{isLh9$k>qD5py{#l77H!^p6BiNhp^m!;fZL z$Ohx>qOMby=%X=ZAu=B4M zNaBvQx$sTm8@{u-r5#6_vye+}u1Dr6H}k%}N1=)jEn=pg57pNhb*nD(gWq=Ut~WcF zpy&X7Jqg5;OfU>^1I=*e5SS$=0?Mp_CrQLvRa?m*Y`yUF-PD_s+R3{G#FQ(~&J(X! zt~N2bQ>JtET_x;U?V*IT-aU9ClBA@Zs9V6KCHA1C1k0|&=SfYmSk$i0s1kYs{mJ@A z>)V1w?qHZm>maUTAA_CYa+~~qS3mk24Pnj6b~LsxaNTcqPs=Jo#?LoB{Ob+OB=;70 z^)cX@@`*rC%YmfvHS6CO5a0)Iv}MVe=lUI9I52isZq3;L%G;lXpH!>){S_Anfdu^S~HmQLe+73?7Le4bQDYFW!>o`c+c)0 ziEL-0olZl6`bR5mTu~5Zdz@mAW=NOUH3(ot-D$*6g_u{?PuhC!HnyUwe@#BiTVN;q h&*a0%p>X2j_9Z*Jj=Ek_Z&{Es0F>_JD5=}&{{Y_^wU__^ literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.rst b/doc/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.rst new file mode 100644 index 000000000..565afc637 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.rst @@ -0,0 +1,104 @@ +.. _Converting_colorspaces: + +Changing Colorspaces +**************************** + +Goal +========= + + * In this tutorial, you will learn how to convert images from one color-space to another, like BGR :math:`\leftrightarrow` Gray, BGR :math:`\leftrightarrow` HSV etc. + * In addition to that, we will create an application which extracts a colored object in a video + * You will learn following functions : **cv2.cvtColor()**, **cv2.inRange()** etc. + +Changing Color-space +====================== + +There are more than 150 color-space conversion methods available in OpenCV. But we will look into only two which are most widely used ones, BGR :math:`\leftrightarrow` Gray and BGR :math:`\leftrightarrow` HSV. + +For color conversion, we use the function ``cv2.cvtColor(input_image, flag)`` where ``flag`` determines the type of conversion. + +For BGR :math:`\rightarrow` Gray conversion we use the flags ``cv2.COLOR_BGR2GRAY``. Similarly for BGR :math:`\rightarrow` HSV, we use the flag ``cv2.COLOR_BGR2HSV``. To get other flags, just run following commands in your Python terminal : +:: + + >>> import cv2 + >>> flags = [i for i in dir(cv2) if i.startswith('COLOR_')] + >>> print flags + + +.. note:: For HSV, Hue range is [0,179], Saturation range is [0,255] and Value range is [0,255]. Different softwares use different scales. So if you are comparing OpenCV values with them, you need to normalize these ranges. + +Object Tracking +================== + +Now we know how to convert BGR image to HSV, we can use this to extract a colored object. In HSV, it is more easier to represent a color than RGB color-space. In our application, we will try to extract a blue colored object. So here is the method: + + * Take each frame of the video + * Convert from BGR to HSV color-space + * We threshold the HSV image for a range of blue color + * Now extract the blue object alone, we can do whatever on that image we want. + +Below is the code which are commented in detail : +:: + + import cv2 + import numpy as np + + cap = cv2.VideoCapture(0) + + while(1): + + # Take each frame + _, frame = cap.read() + + # Convert BGR to HSV + hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) + + # define range of blue color in HSV + lower_blue = np.array([110,50,50]) + upper_blue = np.array([130,255,255]) + + # Threshold the HSV image to get only blue colors + mask = cv2.inRange(hsv, lower_green, upper_green) + + # Bitwise-AND mask and original image + res = cv2.bitwise_and(frame,frame, mask= mask) + + cv2.imshow('frame',frame) + cv2.imshow('mask',mask) + cv2.imshow('res',res) + k = cv2.waitKey(5) & 0xFF + if k == 27: + break + + cv2.destroyAllWindows() + +Below image shows tracking of the blue object: + + .. image:: images/frame.jpg + :width: 780 pt + :alt: Blue Object Tracking + :align: center + +.. note:: There are some noises in the image. We will see how to remove them in later chapters. + +.. note:: This is the simplest method in object tracking. Once you learn functions of contours, you can do plenty of things like find centroid of this object and use it to track the object, draw diagrams just by moving your hand in front of camera and many other funny stuffs. + +How to find HSV values to track? +----------------------------------- +This is a common question found in `stackoverflow.com `_. It is very simple and you can use the same function, `cv2.cvtColor()`. Instead of passing an image, you just pass the BGR values you want. For example, to find the HSV value of Green, try following commands in Python terminal: +:: + + >>> green = np.uint8([[[0,255,0 ]]]) + >>> hsv_green = cv2.cvtColor(green,cv2.COLOR_BGR2HSV) + >>> print hsv_green + [[[ 60 255 255]]] + +Now you take [H-10, 100,100] and [H+10, 255, 255] as lower bound and upper bound respectively. Apart from this method, you can use any image editing tools like GIMP or any online converters to find these values, but don't forget to adjust the HSV ranges. + + +Additional Resources +======================== + +Exercises +============ +#. Try to find a way to extract more than one colored objects, for eg, extract red, blue, green objects simultaneously. diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/approx.jpg b/doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/approx.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f5af62ff4a9de95e06d8fa6814e880cc960daaf GIT binary patch literal 12610 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 F{{itL+O7Zq literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/boundingrect.png b/doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/boundingrect.png new file mode 100644 index 0000000000000000000000000000000000000000..c253ef16a299749e7ae678c3cf7176d2ff54dc88 GIT binary patch literal 7291 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 kzr5G_Uw%`fQqhXPF@e{*K5ftc011q)1^@s6 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/circumcircle.png b/doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/circumcircle.png new file mode 100644 index 0000000000000000000000000000000000000000..0c47fc98afc86e22443c2b4db1b5c93419187462 GIT binary patch literal 7290 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%0DHVf%%?AOHuVQ$?6oW^1KR=bftEil||nD~jR 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 azdF?%zpcmrRk$SI{@)_!ALHcs>Hi1)i96^3 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/fitellipse.png b/doc/py_tutorials/py_imgproc/py_contours/py_contour_features/images/fitellipse.png new file mode 100644 index 0000000000000000000000000000000000000000..1d3818965a24606970164ed4c49ed72c3ef218fe GIT binary patch literal 6254 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 + +The function **cv2.moments()** gives a dictionary of all moment values calculated. See below: +:: + + import cv2 + import numpy as np + + img = cv2.imread('star.jpg',0) + ret,thresh = cv2.threshold(img,127,255,0) + contours,hierarchy = cv2.findContours(thresh, 1, 2) + + cnt = contours[0] + M = cv2.moments(cnt) + print M + +From this moments, you can extract useful data like area, centroid etc. Centroid is given by the relations, :math:`C_x = \frac{M_{10}}{M_{00}}` and :math:`C_y = \frac{M_{01}}{M_{00}}`. This can be done as follows: +:: + + cx = int(M['m10']/M['m00']) + cy = int(M['m01']/M['m00']) + + +2. Contour Area +================= + +Contour area is given by the function **cv2.contourArea()** or from moments, **M['m00']**. +:: + + area = cv2.contourArea(cnt) + +3. Contour Perimeter +======================= + +It is also called arc length. It can be found out using **cv2.arcLength()** function. Second argument specify whether shape is a closed contour (if passed ``True``), or just a curve. +:: + + perimeter = cv2.arcLength(cnt,True) + +4. Contour Approximation +========================= + +It approximates a contour shape to another shape with less number of vertices depending upon the precision we specify. It is an implementation of `Douglas-Peucker algorithm `_. Check the wikipedia page for algorithm and demonstration. + +To understand this, suppose you are trying to find a square in an image, but due to some problems in the image, you didn't get a perfect square, but a "bad shape" (As shown in first image below). Now you can use this function to approximate the shape. In this, second argument is called ``epsilon``, which is maximum distance from contour to approximated contour. It is an accuracy parameter. A wise selection of ``epsilon`` is needed to get the correct output. +:: + + epsilon = 0.1*cv2.arcLength(cnt,True) + approx = cv2.approxPolyDP(cnt,epsilon,True) + +Below, in second image, green line shows the approximated curve for ``epsilon = 10% of arc length``. Third image shows the same for ``epsilon = 1% of the arc length``. Third argument specifies whether curve is closed or not. + + .. image:: images/approx.jpg + :alt: Contour Approximation + :align: center + +5. Convex Hull +================= + +Convex Hull will look similar to contour approximation, but it is not (Both may provide same results in some cases). Here, **cv2.convexHull()** function checks a curve for convexity defects and corrects it. Generally speaking, convex curves are the curves which are always bulged out, or at-least flat. And if it is bulged inside, it is called convexity defects. For example, check the below image of hand. Red line shows the convex hull of hand. The double-sided arrow marks shows the convexity defects, which are the local maximum deviations of hull from contours. + + .. image:: images/convexitydefects.jpg + :alt: Convex Hull + :align: center + +There is a little bit things to discuss about it its syntax: +:: + + hull = cv2.convexHull(points[, hull[, clockwise[, returnPoints]] + +Arguments details: + + * **points** are the contours we pass into. + * **hull** is the output, normally we avoid it. + * **clockwise** : Orientation flag. If it is ``True``, the output convex hull is oriented clockwise. Otherwise, it is oriented counter-clockwise. + * **returnPoints** : By default, ``True``. Then it returns the coordinates of the hull points. If ``False``, it returns the indices of contour points corresponding to the hull points. + +So to get a convex hull as in above image, following is sufficient: +:: + + hull = cv2.convexHull(cnt) + +But if you want to find convexity defects, you need to pass ``returnPoints = False``. To understand it, we will take the rectangle image above. First I found its contour as ``cnt``. Now I found its convex hull with ``returnPoints = True``, I got following values: ``[[[234 202]], [[ 51 202]], [[ 51 79]], [[234 79]]]`` which are the four corner points of rectangle. Now if do the same with ``returnPoints = False``, I get following result: ``[[129],[ 67],[ 0],[142]]``. These are the indices of corresponding points in contours. For eg, check the first value: ``cnt[129] = [[234, 202]]`` which is same as first result (and so on for others). + +You will see it again when we discuss about convexity defects. + +6. Checking Convexity +========================= +There is a function to check if a curve is convex or not, **cv2.isContourConvex()**. It just return whether True or False. Not a big deal. +:: + + k = cv2.isContourConvex(cnt) + +7. Bounding Rectangle +====================== +There are two types of bounding rectangles. + +7.a. Straight Bounding Rectangle +---------------------------------- +It is a straight rectangle, it doesn't consider the rotation of the object. So area of the bounding rectangle won't be minimum. It is found by the function **cv2.boundingRect()**. + +Let (x,y) be the top-left coordinate of the rectangle and (w,h) be its width and height. +:: + + x,y,w,h = cv2.boundingRect(cnt) + img = cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2) + +7.b. Rotated Rectangle +----------------------- +Here, bounding rectangle is drawn with minimum area, so it considers the rotation also. The function used is **cv2.minAreaRect()**. It returns a Box2D structure which contains following detals - ( top-left corner(x,y), (width, height), angle of rotation ). But to draw this rectangle, we need 4 corners of the rectangle. It is obtained by the function **cv2.boxPoints()** +:: + + rect = cv2.minAreaRect(cnt) + box = cv2.boxPoints(rect) + box = np.int0(box) + im = cv2.drawContours(im,[box],0,(0,0,255),2) + +Both the rectangles are shown in a single image. Green rectangle shows the normal bounding rect. Red rectangle is the rotated rect. + + .. image:: images/boundingrect.png + :alt: Bounding Rectangle + :align: center + +8. Minimum Enclosing Circle +=============================== +Next we find the circumcircle of an object using the function **cv2.minEnclosingCircle()**. It is a circle which completely covers the object with minimum area. +:: + + (x,y),radius = cv2.minEnclosingCircle(cnt) + center = (int(x),int(y)) + radius = int(radius) + img = cv2.circle(img,center,radius,(0,255,0),2) + +.. image:: images/circumcircle.png + :alt: Minimum Enclosing Circle + :align: center + +9. Fitting an Ellipse +========================= + +Next one is to fit an ellipse to an object. It returns the rotated rectangle in which the ellipse is inscribed. +:: + + ellipse = cv2.fitEllipse(cnt) + im = cv2.ellipse(im,ellipse,(0,255,0),2) + +.. image:: images/fitellipse.png + :alt: Fitting an Ellipse + :align: center + + +10. Fitting a Line +======================= + +Similarly we can fit a line to a set of points. Below image contains a set of white points. We can approximate a straight line to it. +:: + + rows,cols = img.shape[:2] + [vx,vy,x,y] = cv2.fitLine(cnt, cv2.DIST_L2,0,0.01,0.01) + lefty = int((-x*vy/vx) + y) + righty = int(((cols-x)*vy/vx)+y) + img = cv2.line(img,(cols-1,righty),(0,lefty),(0,255,0),2) + +.. image:: images/fitline.jpg + :alt: Fitting a Line + :align: center + +Additional Resources +====================== + +Exercises +============= diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contour_properties/images/extremepoints.jpg b/doc/py_tutorials/py_imgproc/py_contours/py_contour_properties/images/extremepoints.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d26dccd12cd54ff7b55576fb64d5f5bd4d680a11 GIT binary patch literal 10951 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 A?*IS* literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contour_properties/py_contour_properties.rst b/doc/py_tutorials/py_imgproc/py_contours/py_contour_properties/py_contour_properties.rst new file mode 100644 index 000000000..012fb43af --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_contours/py_contour_properties/py_contour_properties.rst @@ -0,0 +1,126 @@ +.. _Contour_Properties: + +Contour Properties +********************* + +Here we will learn to extract some frequently used properties of objects like Solidity, Equivalent Diameter, Mask image, Mean Intensity etc. More features can be found at `Matlab regionprops documentation `_. + +*(NB : Centroid, Area, Perimeter etc also belong to this category, but we have seen it in last chapter)* + +1. Aspect Ratio +================ + +It is the ratio of width to height of bounding rect of the object. + +.. math:: + + Aspect \; Ratio = \frac{Width}{Height} + +.. code-block:: python + + x,y,w,h = cv2.boundingRect(cnt) + aspect_ratio = float(w)/h + +2. Extent +========== + +Extent is the ratio of contour area to bounding rectangle area. + +.. math:: + Extent = \frac{Object \; Area}{Bounding \; Rectangle \; Area} + +.. code-block:: python + + area = cv2.contourArea(cnt) + x,y,w,h = cv2.boundingRect(cnt) + rect_area = w*h + extent = float(area)/rect_area + +3. Solidity +============ + +Solidity is the ratio of contour area to its convex hull area. + +.. math:: + Solidity = \frac{Contour \; Area}{Convex \; Hull \; Area} + +.. code-block:: python + + area = cv2.contourArea(cnt) + hull = cv2.convexHull(cnt) + hull_area = cv2.contourArea(hull) + solidity = float(area)/hull_area + +4. Equivalent Diameter +======================= + +Equivalent Diameter is the diameter of the circle whose area is same as the contour area. + +.. math:: + Equivalent \; Diameter = \sqrt{\frac{4 \times Contour \; Area}{\pi}} + +.. code-block:: python + + area = cv2.contourArea(cnt) + equi_diameter = np.sqrt(4*area/np.pi) + +5. Orientation +================ + +Orientation is the angle at which object is directed. Following method also gives the Major Axis and Minor Axis lengths. +:: + + (x,y),(MA,ma),angle = cv2.fitEllipse(cnt) + +6. Mask and Pixel Points +========================= + +In some cases, we may need all the points which comprises that object. It can be done as follows: +:: + + mask = np.zeros(imgray.shape,np.uint8) + cv2.drawContours(mask,[cnt],0,255,-1) + pixelpoints = np.transpose(np.nonzero(mask)) + #pixelpoints = cv2.findNonZero(mask) + +Here, two methods, one using Numpy functions, next one using OpenCV function (last commented line) are given to do the same. Results are also same, but with a slight difference. Numpy gives coordinates in **(row, column)** format, while OpenCV gives coordinates in **(x,y)** format. So basically the answers will be interchanged. Note that, **row = x** and **column = y**. + +7. Maximum Value, Minimum Value and their locations +======================================================= + +We can find these parameters using a mask image. +:: + + min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(imgray,mask = mask) + +8. Mean Color or Mean Intensity +=================================== + +Here, we can find the average color of an object. Or it can be average intensity of the object in grayscale mode. We again use the same mask to do it. +:: + + mean_val = cv2.mean(im,mask = mask) + +9. Extreme Points +================== + +Extreme Points means topmost, bottommost, rightmost and leftmost points of the object. +:: + + leftmost = tuple(cnt[cnt[:,:,0].argmin()][0]) + rightmost = tuple(cnt[cnt[:,:,0].argmax()][0]) + topmost = tuple(cnt[cnt[:,:,1].argmin()][0]) + bottommost = tuple(cnt[cnt[:,:,1].argmax()][0]) + +For eg, if I apply it to an Indian map, I get the following result : + + .. image:: images/extremepoints.jpg + :alt: Extreme Points + :align: center + +Additional Resources +====================== + +Exercises +=========== +#. There are still some features left in matlab regionprops doc. Try to implement them. diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contours_begin/images/none.jpg b/doc/py_tutorials/py_imgproc/py_contours/py_contours_begin/images/none.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b06cb436ff691cedfa5ff655e5123ea657f79e97 GIT binary patch literal 5028 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.rst b/doc/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.rst new file mode 100644 index 000000000..d0a9e8ca0 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.rst @@ -0,0 +1,80 @@ +.. _Contours_Getting_Started: + +Contours : Getting Started +**************************** + +Goal +====== + + * Understand what contours are. + * Learn to find contours, draw contours etc + * You will see these functions : **cv2.findContours()**, **cv2.drawContours()** + +What are contours? +=================== + +Contours can be explained simply as a curve joining all the continuous points (along the boundary), having same color or intensity. The contours are a useful tool for shape analysis and object detection and recognition. + + * For better accuracy, use binary images. So before finding contours, apply threshold or canny edge detection. + * findContours function modifies the source image. So if you want source image even after finding contours, already store it to some other variables. + * In OpenCV, finding contours is like finding white object from black background. So remember, object to be found should be white and background should be black. + +Let's see how to find contours of a binary image: +:: + + import numpy as np + import cv2 + + im = cv2.imread('test.jpg') + imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) + ret,thresh = cv2.threshold(imgray,127,255,0) + image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) + +See, there are three arguments in **cv2.findContours()** function, first one is source image, second is contour retrieval mode, third is contour approximation method. And it outputs the image, contours and hierarchy. ``contours`` is a Python list of all the contours in the image. Each individual contour is a Numpy array of (x,y) coordinates of boundary points of the object. + +.. note:: We will discuss second and third arguments and about hierarchy in details later. Until then, the values given to them in code sample will work fine for all images. + + +How to draw the contours? +=========================== + +To draw the contours, ``cv2.drawContours`` function is used. It can also be used to draw any shape provided you have its boundary points. Its first argument is source image, second argument is the contours which should be passed as a Python list, third argument is index of contours (useful when drawing individual contour. To draw all contours, pass -1) and remaining arguments are color, thickness etc. + +To draw all the contours in an image: +:: + + img = cv2.drawContour(img, contours, -1, (0,255,0), 3) + +To draw an individual contour, say 4th contour: +:: + + img = cv2.drawContours(img, contours, 3, (0,255,0), 3) + +But most of the time, below method will be useful: +:: + + cnt = contours[4] + img = cv2.drawContours(img, [cnt], 0, (0,255,0), 3) + +.. note:: Last two methods are same, but when you go forward, you will see last one is more useful. + +Contour Approximation Method +================================ + +This is the third argument in ``cv2.findContours`` function. What does it denote actually? + +Above, we told that contours are the boundaries of a shape with same intensity. It stores the (x,y) coordinates of the boundary of a shape. But does it store all the coordinates ? That is specified by this contour approximation method. + +If you pass ``cv2.CHAIN_APPROX_NONE``, all the boundary points are stored. But actually do we need all the points? For eg, you found the contour of a straight line. Do you need all the points on the line to represent that line? No, we need just two end points of that line. This is what ``cv2.CHAIN_APPROX_SIMPLE`` does. It removes all redundant points and compresses the contour, thereby saving memory. + +Below image of a rectangle demonstrate this technique. Just draw a circle on all the coordinates in the contour array (drawn in blue color). First image shows points I got with ``cv2.CHAIN_APPROX_NONE`` (734 points) and second image shows the one with ``cv2.CHAIN_APPROX_SIMPLE`` (only 4 points). See, how much memory it saves!!! + + .. image:: images/none.jpg + :alt: Contour Retrieval Method + :align: center + +Additional Resources +======================== + +Exercises +============= diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/images/ccomp_hierarchy.png b/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/images/ccomp_hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..0be27ef719163b11f6eefc077a1ffb1cbc4202c5 GIT binary patch literal 11971 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 I;`YOT0C1-jaR2}S literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/images/tree_hierarchy.png b/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/images/tree_hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..c25059ad4f9958779cd053d2ca83754ca865bb42 GIT binary patch literal 11917 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/py_contours_hierarchy.rst b/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/py_contours_hierarchy.rst new file mode 100644 index 000000000..141fd458e --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/py_contours_hierarchy.rst @@ -0,0 +1,177 @@ +.. _Contours_Hierarchy: + +Contours Hierarchy +************************* + +Goal +======= + +This time, we learn about the hierarchy of contours, i.e. the parent-child relationship in Contours. + +Theory +========= + +In the last few articles on contours, we have worked with several functions related to contours provided by OpenCV. But when we found the contours in image using **cv2.findContours()** function, we have passed an argument, **Contour Retrieval Mode**. We usually passed **cv2.RETR_LIST** or **cv2.RETR_TREE** and it worked nice. But what does it actually mean ? + +Also, in the output, we got three arrays, first is the image, second is our contours, and one more output which we named as **hierarchy** (Please checkout the codes in previous articles). But we never used this hierarchy anywhere. Then what is this hierarchy and what is it for ? What is its relationship with the previous mentioned function argument ? + +That is what we are going to deal in this article. + +What is Hierarchy? +------------------- + +Normally we use the **cv2.findContours()** function to detect objects in an image, right ? Sometimes objects are in different locations. But in some cases, some shapes are inside other shapes. Just like nested figures. In this case, we call outer one as **parent** and inner one as **child**. This way, contours in an image has some relationship to each other. And we can specify how one contour is connected to each other, like, is it child of some other contour, or is it a parent etc. Representation of this relationship is called the **Hierarchy**. + +Consider an example image below : + + .. image:: images/hierarchy.png + :alt: Hierarchy Representation + :align: center + +In this image, there are a few shapes which I have numbered from **0-5**. *2 and 2a* denotes the external and internal contours of the outermost box. + +Here, contours 0,1,2 are **external or outermost**. We can say, they are in **hierarchy-0** or simply they are in **same hierarchy level**. + +Next comes **contour-2a**. It can be considered as a **child of contour-2** (or in opposite way, contour-2 is parent of contour-2a). So let it be in **hierarchy-1**. Similarly contour-3 is child of contour-2 and it comes in next hierarchy. Finally contours 4,5 are the children of contour-3a, and they come in the last hierarchy level. From the way I numbered the boxes, I would say contour-4 is the first child of contour-3a (It can be contour-5 also). + +I mentioned these things to understand terms like **same hierarchy level**, **external contour**, **child contour**, **parent contour**, **first child** etc. Now let's get into OpenCV. + +Hierarchy Representation in OpenCV +------------------------------------ + +So each contour has its own information regarding what hierarchy it is, who is its child, who is its parent etc. OpenCV represents it as an array of four values : **[Next, Previous, First_Child, Parent]** + +.. centered:: *"Next denotes next contour at the same hierarchical level."* + +For eg, take contour-0 in our picture. Who is next contour in its same level ? It is contour-1. So simply put ``Next = 1``. Similarly for Contour-1, next is contour-2. So ``Next = 2``. + +What about contour-2? There is no next contour in the same level. So simply, put ``Next = -1``. What about contour-4? It is in same level with contour-5. So its next contour is contour-5, so ``Next = 5``. + +.. centered:: *"Previous denotes previous contour at the same hierarchical level."* + +It is same as above. Previous contour of contour-1 is contour-0 in the same level. Similarly for contour-2, it is contour-1. And for contour-0, there is no previous, so put it as -1. + +.. centered:: *"First_Child denotes its first child contour."* + +There is no need of any explanation. For contour-2, child is contour-2a. So it gets the corresponding index value of contour-2a. What about contour-3a? It has two children. But we take only first child. And it is contour-4. So ``First_Child = 4`` for contour-3a. + +.. centered:: *"Parent denotes index of its parent contour."* + +It is just opposite of **First_Child**. Both for contour-4 and contour-5, parent contour is contour-3a. For contour-3a, it is contour-3 and so on. + +.. note:: If there is no child or parent, that field is taken as -1 + +So now we know about the hierarchy style used in OpenCV, we can check into Contour Retrieval Modes in OpenCV with the help of same image given above. ie what do flags like cv2.RETR_LIST, cv2.RETR_TREE, cv2.RETR_CCOMP, cv2.RETR_EXTERNAL etc mean? + +Contour Retrieval Mode +======================= + +1. RETR_LIST +-------------- + +This is the simplest of the four flags (from explanation point of view). It simply retrieves all the contours, but doesn't create any parent-child relationship. **Parents and kids are equal under this rule, and they are just contours**. ie they all belongs to same hierarchy level. + +So here, 3rd and 4th term in hierarchy array is always -1. But obviously, Next and Previous terms will have their corresponding values. Just check it yourself and verify it. + +Below is the result I got, and each row is hierarchy details of corresponding contour. For eg, first row corresponds to contour 0. Next contour is contour 1. So Next = 1. There is no previous contour, so Previous = 0. And the remaining two, as told before, it is -1. +:: + + >>> hierarchy + array([[[ 1, -1, -1, -1], + [ 2, 0, -1, -1], + [ 3, 1, -1, -1], + [ 4, 2, -1, -1], + [ 5, 3, -1, -1], + [ 6, 4, -1, -1], + [ 7, 5, -1, -1], + [-1, 6, -1, -1]]]) + +This is the good choice to use in your code, if you are not using any hierarchy features. + +2. RETR_EXTERNAL +------------------ + +If you use this flag, it returns only extreme outer flags. All child contours are left behind. **We can say, under this law, Only the eldest in every family is taken care of. It doesn't care about other members of the family :)**. + +So, in our image, how many extreme outer contours are there? ie at hierarchy-0 level?. Only 3, ie contours 0,1,2, right? Now try to find the contours using this flag. Here also, values given to each element is same as above. Compare it with above result. Below is what I got : +:: + + >>> hierarchy + array([[[ 1, -1, -1, -1], + [ 2, 0, -1, -1], + [-1, 1, -1, -1]]]) + +You can use this flag if you want to extract only the outer contours. It might be useful in some cases. + +3. RETR_CCOMP +------------------ + +This flag retrieves all the contours and arranges them to a 2-level hierarchy. ie external contours of the object (ie its boundary) are placed in hierarchy-1. And the contours of holes inside object (if any) is placed in hierarchy-2. If any object inside it, its contour is placed again in hierarchy-1 only. And its hole in hierarchy-2 and so on. + +Just consider the image of a "big white zero" on a black background. Outer circle of zero belongs to first hierarchy, and inner circle of zero belongs to second hierarchy. + +We can explain it with a simple image. Here I have labelled the order of contours in red color and the hierarchy they belongs to, in green color (either 1 or 2). The order is same as the order OpenCV detects contours. + + .. image:: images/ccomp_hierarchy.png + :alt: CCOMP Hierarchy + :align: center + +So consider first contour, ie contour-0. It is hierarchy-1. It has two holes, contours 1&2, and they belong to hierarchy-2. So for contour-0, Next contour in same hierarchy level is contour-3. And there is no previous one. And its first is child is contour-1 in hierarchy-2. It has no parent, because it is in hierarchy-1. So its hierarchy array is [3,-1,1,-1] + +Now take contour-1. It is in hierarchy-2. Next one in same hierarchy (under the parenthood of contour-1) is contour-2. No previous one. No child, but parent is contour-0. So array is [2,-1,-1,0]. + +Similarly contour-2 : It is in hierarchy-2. There is not next contour in same hierarchy under contour-0. So no Next. Previous is contour-1. No child, parent is contour-0. So array is [-1,1,-1,0]. + +Contour - 3 : Next in hierarchy-1 is contour-5. Previous is contour-0. Child is contour-4 and no parent. So array is [5,0,4,-1]. + +Contour - 4 : It is in hierarchy 2 under contour-3 and it has no sibling. So no next, no previous, no child, parent is contour-3. So array is [-1,-1,-1,3]. + +Remaining you can fill up. This is the final answer I got: +:: + + >>> hierarchy + array([[[ 3, -1, 1, -1], + [ 2, -1, -1, 0], + [-1, 1, -1, 0], + [ 5, 0, 4, -1], + [-1, -1, -1, 3], + [ 7, 3, 6, -1], + [-1, -1, -1, 5], + [ 8, 5, -1, -1], + [-1, 7, -1, -1]]]) + + +4. RETR_TREE +------------------ + +And this is the final guy, Mr.Perfect. It retrieves all the contours and creates a full family hierarchy list. **It even tells, who is the grandpa, father, son, grandson and even beyond... :)**. + +For examle, I took above image, rewrite the code for cv2.RETR_TREE, reorder the contours as per the result given by OpenCV and analyze it. Again, red letters give the contour number and green letters give the hierarchy order. + + .. image:: images/tree_hierarchy.png + :alt: CCOMP Hierarchy + :align: center + +Take contour-0 : It is in hierarchy-0. Next contour in same hierarchy is contour-7. No previous contours. Child is contour-1. And no parent. So array is [7,-1,1,-1]. + +Take contour-2 : It is in hierarchy-1. No contour in same level. No previous one. Child is contour-2. Parent is contour-0. So array is [-1,-1,2,0]. + +And remaining, try yourself. Below is the full answer: +:: + + >>> hierarchy + array([[[ 7, -1, 1, -1], + [-1, -1, 2, 0], + [-1, -1, 3, 1], + [-1, -1, 4, 2], + [-1, -1, 5, 3], + [ 6, -1, -1, 4], + [-1, 5, -1, 4], + [ 8, 0, -1, -1], + [-1, 7, -1, -1]]]) + +Additional Resources +======================= + +Exercises +========== diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/images/defects.jpg b/doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/images/defects.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da19f70257a56eaff10fb479d962536f427238b9 GIT binary patch literal 10615 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/py_contours_more_functions.rst b/doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/py_contours_more_functions.rst new file mode 100644 index 000000000..ad17a0004 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/py_contours_more_functions.rst @@ -0,0 +1,122 @@ +.. _Contours_More_Functions: + +Contours : More Functions +****************************** + +Goal +====== + +In this chapter, we will learn about + * Convexity defects and how to find them. + * Finding shortest distance from a point to a polygon + * Matching different shapes + +Theory and Code +================ + +1. Convexity Defects +----------------------- + +We saw what is convex hull in second chapter about contours. Any deviation of the object from this hull can be considered as convexity defect. + +OpenCV comes with a ready-made function to find this, **cv2.convexityDefects()**. A basic function call would look like below: +:: + + hull = cv2.convexHull(cnt,returnPoints = False) + defects = cv2.convexityDefects(cnt,hull) + +.. note:: Remember we have to pass ``returnPoints = False`` while finding convex hull, in order to find convexity defects. + +It returns an array where each row contains these values - **[ start point, end point, farthest point, approximate distance to farthest point ]**. We can visualize it using an image. We draw a line joining start point and end point, then draw a circle at the farthest point. Remember first three values returned are indices of ``cnt``. So we have to bring those values from ``cnt``. +:: + + import cv2 + import numpy as np + + img = cv2.imread('star.jpg') + img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + ret, thresh = cv2.threshold(img_gray, 127, 255,0) + contours,hierarchy = cv2.findContours(thresh,2,1) + cnt = contours[0] + + hull = cv2.convexHull(cnt,returnPoints = False) + defects = cv2.convexityDefects(cnt,hull) + + for i in range(defects.shape[0]): + s,e,f,d = defects[i,0] + start = tuple(cnt[s][0]) + end = tuple(cnt[e][0]) + far = tuple(cnt[f][0]) + cv2.line(img,start,end,[0,255,0],2) + cv2.circle(img,far,5,[0,0,255],-1) + + cv2.imshow('img',img) + cv2.waitKey(0) + cv2.destroyAllWindows() + +And see the result: + + .. image:: images/defects.jpg + :alt: Convexity Defects + :align: center + +2. Point Polygon Test +----------------------- + +This function finds the shortest distance between a point in the image and a contour. It returns the distance which is negative when point is outside the contour, positive when point is inside and zero if point is on the contour. + +For example, we can check the point (50,50) as follows: +:: + + dist = cv2.pointPolygonTest(cnt,(50,50),True) + +In the function, third argument is ``measureDist``. If it is ``True``, it finds the signed distance. If ``False``, it finds whether the point is inside or outside or on the contour (it returns +1, -1, 0 respectively). + +.. note:: If you don't want to find the distance, make sure third argument is ``False``, because, it is a time consuming process. So, making it ``False`` gives about 2-3X speedup. + +3. Match Shapes +----------------- + +OpenCV comes with a function **cv2.matchShapes()** which enables us to compare two shapes, or two contours and returns a metric showing the similarity. The lower the result, the better match it is. It is calculated based on the hu-moment values. Different measurement methods are explained in the docs. +:: + + import cv2 + import numpy as np + + img1 = cv2.imread('star.jpg',0) + img2 = cv2.imread('star2.jpg',0) + + ret, thresh = cv2.threshold(img1, 127, 255,0) + ret, thresh2 = cv2.threshold(img2, 127, 255,0) + contours,hierarchy = cv2.findContours(thresh,2,1) + cnt1 = contours[0] + contours,hierarchy = cv2.findContours(thresh2,2,1) + cnt2 = contours[0] + + ret = cv2.matchShapes(cnt1,cnt2,1,0.0) + print ret + +I tried matching shapes with different shapes given below: + + .. image:: images/matchshapes.jpg + :alt: Match Shapes + :align: center + +I got following results: + + * Matching Image A with itself = 0.0 + * Matching Image A with Image B = 0.001946 + * Matching Image A with Image C = 0.326911 + +See, even image rotation doesn't affect much on this comparison. + +.. seealso:: `Hu-Moments `_ are seven moments invariant to translation, rotation and scale. Seventh one is skew-invariant. Those values can be found using **cv2.HuMoments()** function. + +Additional Resources +===================== + +Exercises +============ +#. Check the documentation for **cv2.pointPolygonTest()**, you can find a nice image in Red and Blue color. It represents the distance from all pixels to the white curve on it. All pixels inside curve is blue depending on the distance. Similarly outside points are red. Contour edges are marked with White. So problem is simple. Write a code to create such a representation of distance. + +#. Compare images of digits or letters using **cv2.matchShapes()**. ( That would be a simple step towards OCR ) diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_defects.jpg b/doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_defects.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9629cfb437b2f7032a4a3fa3d166df108f8598bd GIT binary patch literal 3369 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_hierarchy.jpg b/doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_hierarchy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7faee81bd71bfdb5484b35c1f6aaaaa17a62af81 GIT binary patch literal 91290 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_properties.jpg b/doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_properties.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1ebc9be6640bb5f5f7e7292ba5f309ffc8b15e4c GIT binary patch literal 3844 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 K1>p$d_x}QqHzW=K literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_starting.jpg b/doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/images/contour_starting.jpg new file mode 100644 index 0000000000000000000000000000000000000000..962bd1b23c987577a4c9b4059a228c1587b096db GIT binary patch literal 3172 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 Q@EK{WUlc9pZ2$iz00(f}$N&HU literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_filtering/images/blur.jpg b/doc/py_tutorials/py_imgproc/py_filtering/images/blur.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de94963d636cae25611b2bf54848f4ed102a54a4 GIT binary patch literal 23614 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_filtering/images/filter.jpg b/doc/py_tutorials/py_imgproc/py_filtering/images/filter.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f528eff006c5964ba295db7833e851f39b640729 GIT binary patch literal 24000 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 E1A^}pssI20 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_filtering/images/gaussian.jpg b/doc/py_tutorials/py_imgproc/py_filtering/images/gaussian.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c22f36d543833750ee9013b34e7d3cc0ab9ab4de GIT binary patch literal 23929 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 Y#biyo_@~g(Z<&p&ZvQe<5&1RtUpD`N&;S4c literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_filtering/images/median.jpg b/doc/py_tutorials/py_imgproc/py_filtering/images/median.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4f22628858a47764d4ea8b79dd74ef9e0ecf593 GIT binary patch literal 56768 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 Kdr?Ic!2j8q4X_vh literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_filtering/py_filtering.rst b/doc/py_tutorials/py_imgproc/py_filtering/py_filtering.rst new file mode 100644 index 000000000..ccba1b135 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_filtering/py_filtering.rst @@ -0,0 +1,151 @@ +.. _Filtering: + +Smoothing Images +*********************** + +Goals +======= + +Learn to: + * Blur the images with various low pass filters + * Apply custom-made filters to images (2D convolution) + +2D Convolution ( Image Filtering ) +==================================== + +As in one-dimensional signals, images also can be filtered with various low-pass filters(LPF), high-pass filters(HPF) etc. LPF helps in removing noises, blurring the images etc. HPF filters helps in finding edges in the images. + +OpenCV provides a function **cv2.filter2D()** to convolve a kernel with an image. As an example, we will try an averaging filter on an image. A 5x5 averaging filter kernel will look like below: + +.. math:: + + K = \frac{1}{25} \begin{bmatrix} 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \end{bmatrix} + +Operation is like this: keep this kernel above a pixel, add all the 25 pixels below this kernel, take its average and replace the central pixel with the new average value. It continues this operation for all the pixels in the image. Try this code and check the result: +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('opencv_logo.png') + + kernel = np.ones((5,5),np.float32)/25 + dst = cv2.filter2D(img,-1,kernel) + + plt.subplot(121),plt.imshow(img),plt.title('Original') + plt.xticks([]), plt.yticks([]) + plt.subplot(122),plt.imshow(dst),plt.title('Averaging') + plt.xticks([]), plt.yticks([]) + plt.show() + +Result: + + .. image:: images/filter.jpg + :alt: Averaging Filter + :align: center + +Image Blurring (Image Smoothing) +================================== + +Image blurring is achieved by convolving the image with a low-pass filter kernel. It is useful for removing noises. It actually removes high frequency content (eg: noise, edges) from the image. So edges are blurred a little bit in this operation. (Well, there are blurring techniques which doesn't blur the edges too). OpenCV provides mainly four types of blurring techniques. + +1. Averaging +-------------- + +This is done by convolving image with a normalized box filter. It simply takes the average of all the pixels under kernel area and replace the central element. This is done by the function **cv2.blur()** or **cv2.boxFilter()**. Check the docs for more details about the kernel. We should specify the width and height of kernel. A 3x3 normalized box filter would look like below: + +.. math:: + + K = \frac{1}{9} \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix} + +.. note:: If you don't want to use normalized box filter, use **cv2.boxFilter()**. Pass an argument ``normalize=False`` to the function. + +Check a sample demo below with a kernel of 5x5 size: +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('opencv_logo.png') + + blur = cv2.blur(img,(5,5)) + + plt.subplot(121),plt.imshow(img),plt.title('Original') + plt.xticks([]), plt.yticks([]) + plt.subplot(122),plt.imshow(blur),plt.title('Blurred') + plt.xticks([]), plt.yticks([]) + plt.show() + +Result: + + .. image:: images/blur.jpg + :alt: Averaging Filter + :align: center + + +2. Gaussian Blurring +---------------------- + +In this, instead of box filter, gaussian kernel is used. It is done with the function, **cv2.GaussianBlur()**. We should specify the width and height of kernel which should be positive and odd. We also should specify the standard deviation in X and Y direction, sigmaX and sigmaY respectively. If only sigmaX is specified, sigmaY is taken as same as sigmaX. If both are given as zeros, they are calculated from kernel size. Gaussian blurring is highly effective in removing gaussian noise from the image. + +If you want, you can create a Gaussian kernel with the function, **cv2.getGaussianKernel()**. + +The above code can be modified for Gaussian blurring: +:: + + blur = cv2.GaussianBlur(img,(5,5),0) + + +Result: + + .. image:: images/gaussian.jpg + :alt: Gaussian Blurring + :align: center + + +3. Median Blurring +-------------------- + +Here, the function **cv2.medianBlur()** takes median of all the pixels under kernel area and central element is replaced with this median value. This is highly effective against salt-and-pepper noise in the images. Interesting thing is that, in the above filters, central element is a newly calculated value which may be a pixel value in the image or a new value. But in median blurring, central element is always replaced by some pixel value in the image. It reduces the noise effectively. Its kernel size should be a positive odd integer. + +In this demo, I added a 50% noise to our original image and applied median blur. Check the result: +:: + + median = cv2.medianBlur(img,5) + +Result: + + .. image:: images/median.jpg + :alt: Median Blurring + :align: center + + +4. Bilateral Filtering +----------------------- + +**cv2.bilateralFilter()** is highly effective in noise removal while keeping edges sharp. But the operation is slower compared to other filters. We already saw that gaussian filter takes the a neighbourhood around the pixel and find its gaussian weighted average. This gaussian filter is a function of space alone, that is, nearby pixels are considered while filtering. It doesn't consider whether pixels have almost same intensity. It doesn't consider whether pixel is an edge pixel or not. So it blurs the edges also, which we don't want to do. + +Bilateral filter also takes a gaussian filter in space, but one more gaussian filter which is a function of pixel difference. Gaussian function of space make sure only nearby pixels are considered for blurring while gaussian function of intensity difference make sure only those pixels with similar intensity to central pixel is considered for blurring. So it preserves the edges since pixels at edges will have large intensity variation. + +Below samples shows use bilateral filter (For details on arguments, visit docs). +:: + + blur = cv2.bilateralFilter(img,9,75,75) + +Result: + + .. image:: images/bilateral.jpg + :alt: Bilateral Filtering + :align: center + +See, the texture on the surface is gone, but edges are still preserved. + +Additional Resources +====================== + +1. Details about the `bilateral filtering `_ + +Exercises +=========== diff --git a/doc/py_tutorials/py_imgproc/py_geometric_transformations/images/affine.jpg b/doc/py_tutorials/py_imgproc/py_geometric_transformations/images/affine.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0cf8b20622a31400b0da0df2de9c57e564414b4f GIT binary patch literal 22685 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�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 Pe^cQ7Z76U-?tlLeOrX!` literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_geometric_transformations/images/rotation.jpg b/doc/py_tutorials/py_imgproc/py_geometric_transformations/images/rotation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d20b614bc2827635af2da3ec8d3de0b6ea906a4 GIT binary patch literal 13587 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 G@P7cd^dZy$ literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_geometric_transformations/images/translation.jpg b/doc/py_tutorials/py_imgproc/py_geometric_transformations/images/translation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86dc3b47832447fc85762bde841505dc8502132b GIT binary patch literal 14098 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

-ucRDmS=%WW%a@M%0U KH%Q`f;eP;eL;J@7 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_geometric_transformations/py_geometric_transformations.rst b/doc/py_tutorials/py_imgproc/py_geometric_transformations/py_geometric_transformations.rst new file mode 100644 index 000000000..109a8395a --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_geometric_transformations/py_geometric_transformations.rst @@ -0,0 +1,166 @@ +.. _Geometric_Transformations: + +Geometric Transformations of Images +************************************* + +Goals +======== + + * Learn to apply different geometric transformation to images like translation, rotation, affine transformation etc. + * You will see these functions: **cv2.getPerspectiveTransform** + +Transformations +================= + +OpenCV provides two transformation functions, **cv2.warpAffine** and **cv2.warpPerspective**, with which you can have all kinds of transformations. **cv2.warpAffine** takes a 2x3 transformation matrix while **cv2.warpPerspective** takes a 3x3 transformation matrix as input. + +Scaling +--------- + +Scaling is just resizing of the image. OpenCV comes with a function **cv2.resize()** for this purpose. The size of the image can be specified manually, or you can specify the scaling factor. Different interpolation methods are used. Preferable interpolation methods are **cv2.INTER_AREA** for shrinking and **cv2.INTER_CUBIC** (slow) & **cv2.INTER_LINEAR** for zooming. By default, interpolation method used is **cv2.INTER_LINEAR** for all resizing purposes. You can resize an input image either of following methods: +:: + + import cv2 + import numpy as np + + img = cv2.imread('messi5.jpg') + + res = cv2.resize(img,None,fx=2, fy=2, interpolation = cv2.INTER_CUBIC) + + #OR + + height, width = img.shape[:2] + res = cv2.resize(img,(2*width, 2*height), interpolation = cv2.INTER_CUBIC) + +Translation +------------- + +Translation is the shifting of object's location. If you know the shift in (x,y) direction, let it be :math:`(t_x,t_y)`, you can create the transformation matrix :math:`\textbf{M}` as follows: + +.. math:: + + M = \begin{bmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \end{bmatrix} + +You can take make it into a Numpy array of type ``np.float32`` and pass it into **cv2.warpAffine()** function. See below example for a shift of (100,50): +:: + + import cv2 + import numpy as np + + img = cv2.imread('messi5.jpg',0) + rows,cols = img.shape + + M = np.float32([[1,0,100],[0,1,50]]) + dst = cv2.warpAffine(img,M,(cols,rows)) + + cv2.imshow('img',dst) + cv2.waitKey(0) + cv2.destroyAllWindows() + +.. warning:: Third argument of the **cv2.warpAffine()** function is the size of the output image, which should be in the form of **(width, height)**. Remember width = number of columns, and height = number of rows. + +See the result below: + + .. image:: images/translation.jpg + :alt: Translation + :align: center + +Rotation +---------- + +Rotation of an image for an angle :math:`\theta` is achieved by the transformation matrix of the form + +.. math:: + + M = \begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} + +But OpenCV provides scaled rotation with adjustable center of rotation so that you can rotate at any location you prefer. Modified transformation matrix is given by + +.. math:: + + \begin{bmatrix} \alpha & \beta & (1- \alpha ) \cdot center.x - \beta \cdot center.y \\ - \beta & \alpha & \beta \cdot center.x + (1- \alpha ) \cdot center.y \end{bmatrix} + +where: + +.. math:: + + \begin{array}{l} \alpha = scale \cdot \cos \theta , \\ \beta = scale \cdot \sin \theta \end{array} + +To find this transformation matrix, OpenCV provides a function, **cv2.getRotationMatrix2D**. Check below example which rotates the image by 90 degree with respect to center without any scaling. +:: + + img = cv2.imread('messi5.jpg',0) + rows,cols = img.shape + + M = cv2.getRotationMatrix2D((cols/2,rows/2),90,1) + dst = cv2.warpAffine(img,M,(cols,rows)) + +See the result: + + .. image:: images/rotation.jpg + :alt: Rotation of Image + :align: center + + +Affine Transformation +------------------------ + +In affine transformation, all parallel lines in the original image will still be parallel in the output image. To find the transformation matrix, we need three points from input image and their corresponding locations in output image. Then **cv2.getAffineTransform** will create a 2x3 matrix which is to be passed to **cv2.warpAffine**. + +Check below example, and also look at the points I selected (which are marked in Green color): +:: + + img = cv2.imread('drawing.png') + rows,cols,ch = img.shape + + pts1 = np.float32([[50,50],[200,50],[50,200]]) + pts2 = np.float32([[10,100],[200,50],[100,250]]) + + M = cv2.getAffineTransform(pts1,pts2) + + dst = cv2.warpAffine(img,M,(cols,rows)) + + plt.subplot(121),plt.imshow(img),plt.title('Input') + plt.subplot(122),plt.imshow(dst),plt.title('Output') + plt.show() + +See the result: + + .. image:: images/affine.jpg + :alt: Affine Transformation + :align: center + +Perspective Transformation +---------------------------- + +For perspective transformation, you need a 3x3 transformation matrix. Straight lines will remain straight even after the transformation. To find this transformation matrix, you need 4 points on the input image and corresponding points on the output image. Among these 4 points, 3 of them should not be collinear. Then transformation matrix can be found by the function **cv2.getPerspectiveTransform**. Then apply **cv2.warpPerspective** with this 3x3 transformation matrix. + +See the code below: +:: + + img = cv2.imread('sudokusmall.png') + rows,cols,ch = img.shape + + pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]]) + pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]]) + + M = cv2.getPerspectiveTransform(pts1,pts2) + + dst = cv2.warpPerspective(img,M,(300,300)) + + plt.subplot(121),plt.imshow(img),plt.title('Input') + plt.subplot(122),plt.imshow(dst),plt.title('Output') + plt.show() + +Result: + + .. image:: images/perspective.jpg + :alt: Perspective Transformation + :align: center + +Additional Resources +===================== +#. "Computer Vision: Algorithms and Applications", Richard Szeliski + +Exercises +=========== diff --git a/doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut.jpg b/doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cce080aa5e3cab8bd2841766d92fafd4ea8f048c GIT binary patch literal 22929 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 JP4(Bze*l9{hcf^G literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut_mask.jpg b/doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut_mask.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d6bd769cee00aaf563479cb828fd17812bd8f85 GIT binary patch literal 11520 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut_output1.jpg b/doc/py_tutorials/py_imgproc/py_grabcut/images/grabcut_output1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b6accf0f8d206338ca0cb43d573f976c0f38e3a GIT binary patch literal 17220 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 I0ZUEN6CDLN-ldm+v}P8!shV)PIK7T~ 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 . An algorithm was needed for foreground extraction with minimal user interaction, and the result was GrabCut. + +How it works from user point of view ? Initially user draws a rectangle around the foreground region (foreground region shoule be completely inside the rectangle). Then algorithm segments it iteratively to get the best result. Done. But in some cases, the segmentation won't be fine, like, it may have marked some foreground region as background and vice versa. In that case, user need to do fine touch-ups. Just give some strokes on the images where some faulty results are there. Strokes basically says *"Hey, this region should be foreground, you marked it background, correct it in next iteration"* or its opposite for background. Then in the next iteration, you get better results. + +See the image below. First player and football is enclosed in a blue rectangle. Then some final touchups with white strokes (denoting foreground) and black strokes (denoting background) is made. And we get a nice result. + + .. image:: images/grabcut_output1.jpg + :alt: GrabCut in Action + :align: center + +So what happens in background ? + + * User inputs the rectangle. Everything outside this rectangle will be taken as sure background (That is the reason it is mentioned before that your rectangle should include all the objects). Everything inside rectangle is unknown. Similarly any user input specifying foreground and background are considered as hard-labelling which means they won't change in the process. + * Computer does an initial labelling depeding on the data we gave. It labels the foreground and background pixels (or it hard-labels) + * Now a Gaussian Mixture Model(GMM) is used to model the foreground and background. + * Depending on the data we gave, GMM learns and create new pixel distribution. That is, the unknown pixels are labelled either probable foreground or probable background depending on its relation with the other hard-labelled pixels in terms of color statistics (It is just like clustering). + * A graph is built from this pixel distribution. Nodes in the graphs are pixels. Additional two nodes are added, **Source node** and **Sink node**. Every foreground pixel is connected to Source node and every background pixel is connected to Sink node. + * The weights of edges connecting pixels to source node/end node are defined by the probability of a pixel being foreground/background. The weights between the pixels are defined by the edge information or pixel similarity. If there is a large difference in pixel color, the edge between them will get a low weight. + * Then a mincut algorithm is used to segment the graph. It cuts the graph into two separating source node and sink node with minimum cost function. The cost function is the sum of all weights of the edges that are cut. After the cut, all the pixels connected to Source node become foreground and those connected to Sink node become background. + * The process is continued until the classification converges. + +It is illustrated in below image (Image Courtesy: http://www.cs.ru.ac.za/research/g02m1682/) + + .. image:: images/grabcut.jpg + :alt: Simplified Diagram of GrabCut Algorithm + :align: center + +Demo +======= + +Now we go for grabcut algorithm with OpenCV. OpenCV has the function, **cv2.grabCut()** for this. We will see its arguments first: + + * *img* - Input image + * *mask* - It is a mask image where we specify which areas are background, foreground or probable background/foreground etc. It is done by the following flags, **cv2.GC_BGD, cv2.GC_FGD, cv2.GC_PR_BGD, cv2.GC_PR_FGD**, or simply pass 0,1,2,3 to image. + * *rect* - It is the coordinates of a rectangle which includes the foreground object in the format (x,y,w,h) + * *bdgModel*, *fgdModel* - These are arrays used by the algorithm internally. You just create two np.float64 type zero arrays of size (1,65). + * *iterCount* - Number of iterations the algorithm should run. + * *mode* - It should be **cv2.GC_INIT_WITH_RECT** or **cv2.GC_INIT_WITH_MASK** or combined which decides whether we are drawing rectangle or final touchup strokes. + +First let's see with rectangular mode. We load the image, create a similar mask image. We create *fgdModel* and *bgdModel*. We give the rectangle parameters. It's all straight-forward. Let the algorithm run for 5 iterations. Mode should be *cv2.GC_INIT_WITH_RECT* since we are using rectangle. Then run the grabcut. It modifies the mask image. In the new mask image, pixels will be marked with four flags denoting background/foreground as specified above. So we modify the mask such that all 0-pixels and 2-pixels are put to 0 (ie background) and all 1-pixels and 3-pixels are put to 1(ie foreground pixels). Now our final mask is ready. Just multiply it with input image to get the segmented image. +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img = cv2.imread('messi5.jpg') + mask = np.zeros(img.shape[:2],np.uint8) + + bgdModel = np.zeros((1,65),np.float64) + fgdModel = np.zeros((1,65),np.float64) + + rect = (50,50,450,290) + cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT) + + mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8') + img = img*mask2[:,:,np.newaxis] + + plt.imshow(img),plt.colorbar(),plt.show() + +See the results below: + + .. image:: images/grabcut_rect.jpg + :alt: Segmentation in rect mode + :align: center + +Oops, Messi's hair is gone. *Who likes Messi without his hair?* We need to bring it back. So we will give there a fine touchup with 1-pixel (sure foreground). At the same time, Some part of ground has come to picture which we don't want, and also some logo. We need to remove them. There we give some 0-pixel touchup (sure background). So we modify our resulting mask in previous case as we told now. + +*What I actually did is that, I opened input image in paint application and added another layer to the image. Using brush tool in the paint, I marked missed foreground (hair, shoes, ball etc) with white and unwanted background (like logo, ground etc) with black on this new layer. Then filled remaining background with gray. Then loaded that mask image in OpenCV, edited original mask image we got with corresponding values in newly added mask image. Check the code below:* +:: + + # newmask is the mask image I manually labelled + newmask = cv2.imread('newmask.png',0) + + # whereever it is marked white (sure foreground), change mask=1 + # whereever it is marked black (sure background), change mask=0 + mask[newmask == 0] = 0 + mask[newmask == 255] = 1 + + mask, bgdModel, fgdModel = cv2.grabCut(img,mask,None,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_MASK) + + mask = np.where((mask==2)|(mask==0),0,1).astype('uint8') + img = img*mask[:,:,np.newaxis] + plt.imshow(img),plt.colorbar(),plt.show() + +See the result below: + + .. image:: images/grabcut_mask.jpg + :alt: Segmentation in mask mode + :align: center + +So that's it. Here instead of initializing in rect mode, you can directly go into mask mode. Just mark the rectangle area in mask image with 2-pixel or 3-pixel (probable background/foreground). Then mark our sure_foreground with 1-pixel as we did in second example. Then directly apply the grabCut function with mask mode. + +Additional Resources +======================= + + + +Exercises +============ + +#. OpenCV samples contain a sample ``grabcut.py`` which is an interactive tool using grabcut. Check it. Also watch this `youtube video `_ on how to use it. +#. Here, you can make this into a interactive sample with drawing rectangle and strokes with mouse, create trackbar to adjust stroke width etc. diff --git a/doc/py_tutorials/py_imgproc/py_gradients/images/double_edge.jpg b/doc/py_tutorials/py_imgproc/py_gradients/images/double_edge.jpg new file mode 100644 index 0000000000000000000000000000000000000000..965a59c634b0fda3021a00b1845564ff556c4c1d GIT binary patch literal 7738 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

>!gN;tS0(*|OnXtbyn& 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

tzV5J1%e&_9?bAH#KuKvIF+&r4X+QgwQNRj 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_gradients/py_gradients.rst b/doc/py_tutorials/py_imgproc/py_gradients/py_gradients.rst new file mode 100644 index 000000000..138c74b54 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_gradients/py_gradients.rst @@ -0,0 +1,107 @@ +.. _Gradients: + +Image Gradients +********************** + +Goal +====== + +In this chapter, we will learn to: + + * Find Image gradients, edges etc + * We will see following functions : **cv2.Sobel()**, **cv2.Scharr()**, **cv2.Laplacian()** etc + +Theory +======= + +OpenCV provides three types of gradient filters or High-pass filters, Sobel, Scharr and Laplacian. We will see each one of them. + +1. Sobel and Scharr Derivatives +--------------------------------- + +Sobel operators is a joint Gausssian smoothing plus differentiation operation, so it is more resistant to noise. You can specify the direction of derivatives to be taken, vertical or horizontal (by the arguments, ``yorder`` and ``xorder`` respectively). You can also specify the size of kernel by the argument ``ksize``. If ksize = -1, a 3x3 Scharr filter is used which gives better results than 3x3 Sobel filter. Please see the docs for kernels used. + +2. Laplacian Derivatives +-------------------------- + +It calculates the Laplacian of the image given by the relation, :math:`\Delta src = \frac{\partial ^2{src}}{\partial x^2} + \frac{\partial ^2{src}}{\partial y^2}` where each derivative is found using Sobel derivatives. If ``ksize = 1``, then following kernel is used for filtering: + +.. math:: + + kernel = \begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix} + +Code +======= + +Below code shows all operators in a single diagram. All kernels are of 5x5 size. Depth of output image is passed -1 to get the result in np.uint8 type. +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('dave.jpg',0) + + laplacian = cv2.Laplacian(img,cv2.CV_64F) + sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) + sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) + + plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray') + plt.title('Original'), plt.xticks([]), plt.yticks([]) + plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray') + plt.title('Laplacian'), plt.xticks([]), plt.yticks([]) + plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray') + plt.title('Sobel X'), plt.xticks([]), plt.yticks([]) + plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray') + plt.title('Sobel Y'), plt.xticks([]), plt.yticks([]) + + plt.show() + +Result: + + .. image:: images/gradients.jpg + :alt: Image Gradients + :align: center + +One Important Matter! +======================= + +In our last example, output datatype is cv2.CV_8U or np.uint8. But there is a slight problem with that. Black-to-White transition is taken as Positive slope (it has a positive value) while White-to-Black transition is taken as a Negative slope (It has negative value). So when you convert data to np.uint8, all negative slopes are made zero. In simple words, you miss that edge. + +If you want to detect both edges, better option is to keep the output datatype to some higher forms, like cv2.CV_16S, cv2.CV_64F etc, take its absolute value and then convert back to cv2.CV_8U. Below code demonstrates this procedure for a horizontal Sobel filter and difference in results. +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('box.png',0) + + # Output dtype = cv2.CV_8U + sobelx8u = cv2.Sobel(img,cv2.CV_8U,1,0,ksize=5) + + # Output dtype = cv2.CV_64F. Then take its absolute and convert to cv2.CV_8U + sobelx64f = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) + abs_sobel64f = np.absolute(sobelx64f) + sobel_8u = np.uint8(abs_sobel64f) + + plt.subplot(1,3,1),plt.imshow(img,cmap = 'gray') + plt.title('Original'), plt.xticks([]), plt.yticks([]) + plt.subplot(1,3,2),plt.imshow(sobelx8u,cmap = 'gray') + plt.title('Sobel CV_8U'), plt.xticks([]), plt.yticks([]) + plt.subplot(1,3,3),plt.imshow(sobel_8u,cmap = 'gray') + plt.title('Sobel abs(CV_64F)'), plt.xticks([]), plt.yticks([]) + + plt.show() + +Check the result below: + + .. image:: images/double_edge.jpg + :alt: Double Edges + :align: center + +Additional Resources +====================== + +Exercises +=========== diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_2d_histogram/images/2dhist_matplotlib.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_2d_histogram/images/2dhist_matplotlib.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55e05caaafc997f20a32f27dc81a49ea50feaf3f GIT binary patch literal 15516 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

Lx4ZHf5X@)LoIhin8-aGnpnRT- zbTz`_449}}nQrn9XlCGVB%0 z{|xBIc4r`Q!_z#x@ls&#);zfP6dTYuV|QH-M=!|e7DZ(Q4P%!FrriOBghK+#d>zTN zhc%W5?n1M}tACW&Z)iKDQ*H$li^Nv{L?RzIgU5i3o0ef@ci{MJb+q0dBkfT=X2;cj z{YgQtOOu5tc)nXNa(79;F|T{}f@jgQ{DLPgd|mx?BV7Ir7*Q>gefdR&CGZmW*7@w- z^Mk8U`gQxI^^@Drq2v1(Evz5#N|-<66P6o#x)Uya2Fw)y)Eme>dCE#tfB3N+-EsRT zzn$09g-7}beH!V6VEye2c92I}ud%ftk_Cg|P|)xgx(My=>iSeMG3?s-Hn+gt&w|>u z~4B2rHU{WPu! zMY}vBa9p-YP-A!^^4kV$-%`uLfF)*KjxYK@fG`R4wrKmkNlulWV$1*_==lG_y&7TY zAn8v2;`tE4oh{KDRCZ7aEM+XI{EWpq#`ij&5BB^ed2OnrWIG?^X-!Ol(U_@MpncGqv@QRf?eARoAM|!Ib^c zC1LyT=zY{PP8@5CIYdcW?8HfapW%=3iemPlS{@Q1^I$3BgsTUep!RSg?ES~TN&m)R Q{V#(V{v*JY^m+FG0ac%bZ2$lO literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_2d_histogram/images/2dhist_opencv.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_2d_histogram/images/2dhist_opencv.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06c2ea6c355c41803c6313ffdce25d1013f4a624 GIT binary patch literal 17372 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 already for finding color histograms. We will try to understand how to create such a color histogram, and it will be useful in understanding further topics like Histogram Back-Projection. + +2D Histogram in OpenCV +======================= + +It is quite simple and calculated using the same function, **cv2.calcHist()**. For color histograms, we need to convert the image from BGR to HSV. (Remember, for 1D histogram, we converted from BGR to Grayscale). For 2D histograms, its parameters will be modified as follows: + +* **channels = [0,1]** *because we need to process both H and S plane.* +* **bins = [180,256]** *180 for H plane and 256 for S plane.* +* **range = [0,180,0,256]** *Hue value lies between 0 and 180 & Saturation lies between 0 and 256.* + +Now check the code below: +:: + + import cv2 + import numpy as np + + img = cv2.imread('home.jpg') + hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) + + hist = cv2.calcHist([hsv], [0, 1], None, [180, 256], [0, 180, 0, 256]) + +That's it. + +2D Histogram in Numpy +======================= +Numpy also provides a specific function for this : **np.histogram2d()**. (Remember, for 1D histogram we used **np.histogram()** ). +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('home.jpg') + hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) + + hist, xbins, ybins = np.histogram2d(h.ravel(),s.ravel(),[180,256],[[0,180],[0,256]]) + +First argument is H plane, second one is the S plane, third is number of bins for each and fourth is their range. + +Now we can check how to plot this color histogram. + +Plotting 2D Histograms +======================== + +Method - 1 : Using cv2.imshow() +--------------------------------- +The result we get is a two dimensional array of size 180x256. So we can show them as we do normally, using cv2.imshow() function. It will be a grayscale image and it won't give much idea what colors are there, unless you know the Hue values of different colors. + +Method - 2 : Using Matplotlib +------------------------------ +We can use **matplotlib.pyplot.imshow()** function to plot 2D histogram with different color maps. It gives us much more better idea about the different pixel density. But this also, doesn't gives us idea what color is there on a first look, unless you know the Hue values of different colors. Still I prefer this method. It is simple and better. + +.. note:: While using this function, remember, interpolation flag should be ``nearest`` for better results. + +Consider code: +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('home.jpg') + hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) + hist = cv2.calcHist( [hsv], [0, 1], None, [180, 256], [0, 180, 0, 256] ) + + plt.imshow(hist,interpolation = 'nearest') + plt.show() + +Below is the input image and its color histogram plot. X axis shows S values and Y axis shows Hue. + + .. image:: images/2dhist_matplotlib.jpg + :alt: 2D Histograms + :align: center + +In histogram, you can see some high values near H = 100 and S = 200. It corresponds to blue of sky. Similarly another peak can be seen near H = 25 and S = 100. It corresponds to yellow of the palace. You can verify it with any image editing tools like GIMP. + +Method 3 : OpenCV sample style !! +------------------------------------ + +There is a `sample code for color-histogram in OpenCV-Python2 samples `_. If you run the code, you can see the histogram shows the corresponding color also. Or simply it outputs a color coded histogram. Its result is very good (although you need to add extra bunch of lines). + +In that code, the author created a color map in HSV. Then converted it into BGR. The resulting histogram image is multiplied with this color map. He also uses some preprocessing steps to remove small isolated pixels, resulting in a good histogram. + +I leave it to the readers to run the code, analyze it and have your own hack arounds. Below is the output of that code for the same image as above: + + .. image:: images/2dhist_opencv.jpg + :alt: 2D Histograms using OpenCV-Python Samples + :align: center + +You can clearly see in the histogram what colors are present, blue is there, yellow is there, and some white due to chessboard is there. Nice !!! + +Additional Resources +===================== + +Exercises +================ diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_backprojection/images/backproject_opencv.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_backprojection/images/backproject_opencv.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ee60839b532567400216ab51a78e2d8384b3a846 GIT binary patch literal 34731 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 BNa_Fp literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_backprojection/py_histogram_backprojection.rst b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_backprojection/py_histogram_backprojection.rst new file mode 100644 index 000000000..ecf56c3b2 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_backprojection/py_histogram_backprojection.rst @@ -0,0 +1,111 @@ +.. _Histogram_Backprojection: + +Histogram - 4 : Histogram Backprojection +******************************************* + +Goal +======= + +In this chapter, we will learn about histogram backprojection. + +Theory +======= + +It was proposed by **Michael J. Swain , Dana H. Ballard** in their paper **Indexing via color histograms**. + +**What is it actually in simple words?** It is used for image segmentation or finding objects of interest in an image. In simple words, it creates an image of the same size (but single channel) as that of our input image, where each pixel corresponds to the probability of that pixel belonging to our object. In more simpler worlds, the output image will have our object of interest in more white compared to remaining part. Well, that is an intuitive explanation. (I can't make it more simpler). Histogram Backprojection is used with camshift algorithm etc. + +**How do we do it ?** We create a histogram of an image containing our object of interest (in our case, the ground, leaving player and other things). The object should fill the image as far as possible for better results. And a color histogram is preferred over grayscale histogram, because color of the object is more better way to define the object than its grayscale intensity. We then "back-project" this histogram over our test image where we need to find the object, ie in other words, we calculate the probability of every pixel belonging to the ground and show it. The resulting output on proper thresholding gives us the ground alone. + +Algorithm in Numpy +==================== + +1. First we need to calculate the color histogram of both the object we need to find (let it be 'M') and the image where we are going to search (let it be 'I'). +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + #roi is the object or region of object we need to find + roi = cv2.imread('rose_red.png') + hsv = cv2.cvtColor(roi,cv2.COLOR_BGR2HSV) + + #target is the image we search in + target = cv2.imread('rose.png') + hsvt = cv2.cvtColor(target,cv2.COLOR_BGR2HSV) + + # Find the histograms using calcHist. Can be done with np.histogram2d also + M = cv2.calcHist([hsv],[0, 1], None, [180, 256], [0, 180, 0, 256] ) + I = cv2.calcHist([hsvt],[0, 1], None, [180, 256], [0, 180, 0, 256] ) + +2. Find the ratio :math:`R = \frac{M}{I}`. Then backproject R, ie use R as palette and create a new image with every pixel as its corresponding probability of being target. ie ``B(x,y) = R[h(x,y),s(x,y)]`` where h is hue and s is saturation of the pixel at (x,y). After that apply the condition :math:`B(x,y) = min[B(x,y), 1]`. +:: + + h,s,v = cv2.split(hsvt) + B = R[h.ravel(),s.ravel()] + B = np.minimum(B,1) + B = B.reshape(hsvt.shape[:2]) + +3. Now apply a convolution with a circular disc, :math:`B = D \ast B`, where D is the disc kernel. +:: + + disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5)) + cv2.filter2D(B,-1,disc,B) + B = np.uint8(B) + cv2.normalize(B,B,0,255,cv2.NORM_MINMAX) + +4. Now the location of maximum intensity gives us the location of object. If we are expecting a region in the image, thresholding for a suitable value gives a nice result. +:: + + ret,thresh = cv2.threshold(B,50,255,0) + +That's it !! + +Backprojection in OpenCV +========================== + +OpenCV provides an inbuilt function **cv2.calcBackProject()**. Its parameters are almost same as the **cv2.calcHist()** function. One of its parameter is histogram which is histogram of the object and we have to find it. Also, the object histogram should be normalized before passing on to the backproject function. It returns the probability image. Then we convolve the image with a disc kernel and apply threshold. Below is my code and output : +:: + + import cv2 + import numpy as np + + roi = cv2.imread('rose_red.png') + hsv = cv2.cvtColor(roi,cv2.COLOR_BGR2HSV) + + target = cv2.imread('rose.png') + hsvt = cv2.cvtColor(target,cv2.COLOR_BGR2HSV) + + # calculating object histogram + roihist = cv2.calcHist([hsv],[0, 1], None, [180, 256], [0, 180, 0, 256] ) + + # normalize histogram and apply backprojection + cv2.normalize(roihist,roihist,0,255,cv2.NORM_MINMAX) + dst = cv2.calcBackProject([hsvt],[0,1],roihist,[0,180,0,256],1) + + # Now convolute with circular disc + disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5)) + cv2.filter2D(dst,-1,disc,dst) + + # threshold and binary AND + ret,thresh = cv2.threshold(dst,50,255,0) + thresh = cv2.merge((thresh,thresh,thresh)) + res = cv2.bitwise_and(target,thresh) + + res = np.vstack((target,thresh,res)) + cv2.imwrite('res.jpg',res) + +Below is one example I worked with. I used the region inside blue rectangle as sample object and I wanted to extract the full ground. + + .. image:: images/backproject_opencv.jpg + :alt: Histogram Backprojection in OpenCV + :align: center + +Additional Resources +===================== +#. "Indexing via color histograms", Swain, Michael J. , Third international conference on computer vision,1990. + + +Exercises +============ diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_masking.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_masking.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a6ef89278bd9a0a29757007868866c17cb8735ad GIT binary patch literal 24804 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_matplotlib.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_matplotlib.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a3708f9ca6931d55b1bdc08883e0e5df5c2609a6 GIT binary patch literal 17641 zcmbumcUV))*9N*{Xd;3LNG}2kNLP9bh;)%ARf-A%q4y4<2m(^1D^jI{fb;xZnpaE-oHE5dl7UkzBiWm57w&=1o!(Qc|*8bd+S|G!&$yRJW;U=;;|5 z8ObP_S(zDF=@=Lpes=-^o8sf)6B7^+Gmw*#GyJbF>{o!400M=4gF={rE2I!8DFoXN zFoJU8LjJgbe_fC(P#jQ7f~$nrz#FP=09PPT=oL_YPyz66U+{MThZOhbZGIU%GL0Ab z%#P&u17b1>SRR(OQfQ9svp#s~6nK^J79|xm&7He!>>T$51cih}M8#wu$;m4yDk*C{ z)z;C~(>E|Rdu4863Ab`~admU|@bn6L9USr|G%P$eEHUY~Pg&VHxq0~oh2<5M zRn;}Mb@kuc+B-VCx_f#@$Hpfnr>19SmsgOhYwH`ETiXYRN5?0pzffoAzx9Fu&_C4z zKmSzhA9|63dR+mR1qc7PUXUy9V1bh2;NIrPyD6iA|H6@s`F;Qa`NNpZvev6C4>b2F zUOJ5s-eMJ4zH{(fwLdib|E5^r|4Fm|DE42yW&t871YA5QDF6d5c*5B;uKZt0(KfGy zo0jC~hwzE3kypQ(cR>YT21zrhz}*kXJKnx-*7tV|AeYmZ9Y|dAUBc0$C-~u6G%1$; zwwR}R%!8M;CXD{u5Y0UaX5ltbD6{H?JRY97ZcZ>mU^&_lAI&26hVihqB>~V0F(H>w zURhLv_)GM#p|pOXiZC8<#$ShO`^DaBsFSys9T@F9z)SlBUG)AaY;QGvSsn{eAcn59 zU@%G;iW)h<8RH(_JhFC~q&!z6j_%=4Io{IT`|s_~T-5RI{-p`|U%LAJ8#RLbSCA4G zXo*DxE7-!q7bx7TMzc&)ij?juY#HGSo~z>te^^OBTh2x-_Q1YHV(wvqG#Z6VbR3$K zc4;98QHYXPNtNGL`4E!nO64vpuA@T;12`))i^L&eEgdFDZHoWuoU55rUb;G23(w{z zYuwtet!Kx7NJfqY{-w=7Mf;oB!DuZkAR!QaamI$yStExG%?+&7kkn5pKNi*az`9C& zdC%ytqS+8>NK<`8YyYQ>#$RQz9g(I(A9)mt{3^~(xZMqT6l)PH*`OszJ49{(uMxJj z&HfT{_g#MM6SqLevDtdD!2=ir%>-;`(Bu*r#+i)k5&Zms9H{3s9b*yDav3_qo5ccC zpd!O^reu2}ZWHS7_mwI~l9 z7?!n!oZ#wcsy5I;=O+CHxnamj-d~hwPZKCU;7xKN91#gB(zxUr|1B&oFl7VzO}}_Z zs}DZdGlTsFp)q1}z2v->(H{#OvJ7B>7b-)SbQ6o(Pf^ogTTO@@x%%IV{sJ4=()uYD zC>2E(ZpZ@reb`| zr3x147{LP9X_1B&7o0NSBc+K24tjy}Jb}8>cr37-g$75KPW|)NE)J4i7Npua&L-^F zwh2a5no(yxPVg`ZEf5`v*d)t9EEXV8YkYpAe!@M2(HW4m=BF)aCx5B3fxFhLSO5iA zqeToeO88INdtjGDvv&*EQRBw>Llb^OVhEWtxHw7^uPBdD#u(%b0bV za!_*#abdhT`Ln;`BbDScCciObAr{#5zeU$9-F<*`dg5XP5HB|TTbJwspJW)^p61u6 z0Lh=Na~Lc0B0($jPU=7XLrxOm4@}rgckduIVXOaM6A8=+Mi5~9k&2Ix`2a3@7dv#j zal%(#^iD;h2vUjqoqyEY(~Fysu2t)`#LH|SJA%%b4AYeKd*CV?FYdE-CZ|VB&GTQVqay&ybUyslxQT4^v|@}DA*J~w;R#-<5rh=kk5Gje6iP` zXDigSEZ9Kj-D_%dfUN5ah54rns;WP%Ha9@7AqN(jEotid)0(_Zx8ZrK`|q=oU1}bZ zR~rqIJMJ0WQxaT8R1Qq^8{bE{TGJhJJ+PXIE{HWQgadALQ|O9JWL>a#~?QsQ7qbSY$m}cQjjIo)CCW59d#gyAlDBCS7{zFG{EN#aS8B z0WguT8GF+x>2**exU=WboZ}O36+(2hIhoDyUUthvu)qlop!kW^mBRfAslo2(PAW^=~}u2|=c6486 zKT~UlMZOgvU_=^rU<^taJ;j!UZ}hkPWT;-wupRWfEDuPDa?1iR^@ z>38~Jroz{Fv>{8^+tYs@q|kgnNP1nRb{!=}a@#ERr}-6l%y>RS3R$Q36z=t@88$f6 z!VV+ar)&Cr#a~Rt^YLU^xAfVR1l`nROF2F|_M-HH5ZnYlt(3+JoY|Jxj9N>0a!DBy znU23~uDp!R(UT%y=)I`UE#Mb_TGo|B`JyL-1pc{&6470e5AJ<<7;QNTi{&mNUCqG> zuC^Wr8S38S3p8Wgo@0u(s(pL1P)^pOzP|D2F~KZFauz@yvJ+v3r>UEdW9BSPubPMU z>cFgEfqSu;<)T%gr_;6QLMwp%Q#imb$)0T&4_Rud+=6x?uET!ZTfDgAo({lPlMRr0 zvwN`PT;&6jxj4NVlba|q)v6X5U%ZU+AwnT~(wT>4$2diP+KWE82UU@8f_Vjs72iHH zy2n_pk%FWF_48prvK`{2 zDN6P)TpC*wPJhhOx$HArcTr8PHl4Gnr?$LorFAT?m znjrzVseCSx;E+O+B1-yP9XjI#kAR%{TIuYnS^=AFEBHp{Lvx0YB~5h3=bjjeEhA$9VR276Ny4~R>f=(a{pN(_ zMF6f*QdHE=x;-QgJz{7ecilQBPrs5E!U&WPh%ZX1D6rhbPl}?Hd_!?m+QCbm=ZvEFRFPWYk%k2n|43Q6k5D+h;=sbtE&I@?qPa2kN6mxbU)`w(yaz0Q=(2^ zWrt1HP1PYs)G&UIrLp+O&Sv7K%El2py3RDS2M@DMA!&6I3}Wu3%u_BNNG(q*iBM>T zqR=~ci=XMTX%m}XtLMRM0ae45W3Mvj02+4r`{I-=rK5Fc7AdlhL;>dE>)f$L$aQ3( znmK+ZdJ{_9c4MU@r*nie7C(c|FPqH7*sqt*9;N0>SQk-U!1p}@$=|VKau42YFvq2s zLnLc@`=VEYO7JB8M;sPl9o@rxt3Yhl=0gjEme)TJQbZlD^1io#JoK-4r|UuW^;?SV z*4JDssT<{^E)6@~B|NOm-+L5T@E(Q-V{+7qTy~7Uzd|)&DB?M2 zg4Kfn7dq|as4ODq5aQ>8yaDSi%lx5e7(iIXvVm$ zQzwiykabwg3s2lAc;!aBm;Vp^@$;$DAA7-SWyz@Mk!QTW{i#-Tq3)(%0!1|1OAfPy zd73nOcB?|I#yv4&`sC|?C%q~$%MuJ7dW4wPJi-DBg6g?XLrf#K{0R2p*Rz+a1w?px+46QXTv<`9#zzE&*YFj;Kjk&clo*1|M` zFmCudAg;oAz*W@=9R7iowJQJaL%b z6wN)!q9Po^!JU;XY>peve+$PA3+Msox+M!92>GTu?~mW_cCL7`94;s^>6ky>fU~*` zSuMjXuiyVRwrp49Y-?&uG^%h@B8*DsIkhxSlml?ZUrL3}U%?Ab_q4xq6hhB0P0^i8 zs-qk<`+g^&1931^M^3++!IaKfEtyEl#0cTX}1@4#O>4jGgm zjN8;^5GWr!=F|}yQ@(JPzL6kd5v?pO+U2E`;g)(=pWxL}$SSE;Fn&e`frA&R%9r!; z06D6S96(Tp&OudhNjHY|b`Y;@?eTFzU{q~he)j;t|J1F--Q>c?{g8l$ebTn*gF-K& zEyrcaIpV2U_)JxqO1rN7=H~}-yVCSJshnF*oArXzd|R`xtx87FMX>~QQ}3)8$fwY< z2h2x`qq~^N9idhx!;+Dau&uEs?^_>Vrt$Bu#T%sbE?;!KVp{M_udOM{?J^9Dg;Z za+VLHIS@rgky`DVz0HoeFR2&VGN33q8xOU%bH5l{o=lG$N_JiSjSXinqUn`MR!Y3v z7jNdpx{o!oGu&pscbTc(JGa^C)FzAWLv*jkZ~8rJh}kiySw%gHzF;&Y)7{do?~KZ%vcul zI>a4k{8 zK{3?iLdOZ6RpOv+i7Bmqj$_R&o!bC9IOS2W+1gmTuZ-smJ-XNur@ zLl6t{igfsz$i{6wy5kJuh5wig746C%O=~LS`^xcD-7Gat`hOBSG4(VCB+38^iXp^h ziH@uu-dGjmZXo@6C!Mi>itIvShsG{}_bu}{Pgb?CmvlJU?XTvPq(TplwT$x6s3?vUCxCe(%P{x18@(HG7Puvu0u3!Hs3LE*=R9ARvh1sP94t zmSBOMx1h6ox4fC&u+?)(l5l&{ESXvWMJRUs;)_mh8R)$gwVW?uf!=1veX_&O~2ESqks~!fAarZ0ci*HTZ6ny z&pyyIqZ#?!a%+H2ifVk}q4Wi7Qw18&pY0zI!UA(Au?aE$Cp2#;8bVk)HY^K$7JmmK z^CBr8nz8LE^=U(^;YX8Jz58>GF=5clk;;M|I=UOyQK(2Pa8vc$CND&}POo=ISB?-`7c;GC&c^B5AFUtZ8o0XMKJ3#&fY0KD3puu_XhH zLqi6dpF!-9D_IciSrkddGWuyI$p3*fMeoLBCO7lojgnQZrr`;3)~-b2e4_YUici&{yWF{T?-d9sog4t_;s!Mm6rydxcCy0# zZfT+T�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 Av;Y7A literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_sample.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/images/histogram_sample.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cd624c20542870b6c9e3c720d9c117fbabf92e20 GIT binary patch literal 45913 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, and I recommend you to visit the site for more details. + + .. image:: images/histogram_sample.jpg + :alt: Histogram Example + :align: center + +You can see the image and its histogram. (Remember, this histogram is drawn for grayscale image, not color image). Left region of histogram shows the amount of darker pixels in image and right region shows the amount of brighter pixels. From the histogram, you can see dark region is more than brighter region, and amount of midtones (pixel values in mid-range, say around 127) are very less. + +Find Histogram +================ + +Now we have an idea on what is histogram, we can look into how to find this. Both OpenCV and Numpy come with in-built function for this. Before using those functions, we need to understand some terminologies related with histograms. + +**BINS** :The above histogram shows the number of pixels for every pixel value, ie from 0 to 255. ie you need 256 values to show the above histogram. But consider, what if you need not find the number of pixels for all pixel values separately, but number of pixels in a interval of pixel values? say for example, you need to find the number of pixels lying between 0 to 15, then 16 to 31, ..., 240 to 255. You will need only 16 values to represent the histogram. And that is what is shown in example given in `OpenCV Tutorials on histograms `_. + +So what you do is simply split the whole histogram to 16 sub-parts and value of each sub-part is the sum of all pixel count in it. This each sub-part is called "BIN". In first case, number of bins where 256 (one for each pixel) while in second case, it is only 16. BINS is represented by the term **histSize** in OpenCV docs. + +**DIMS** : It is the number of parameters for which we collect the data. In this case, we collect data regarding only one thing, intensity value. So here it is 1. + +**RANGE** : It is the range of intensity values you want to measure. Normally, it is [0,256], ie all intensity values. + +1. Histogram Calculation in OpenCV +-------------------------------------- + +So now we use **cv2.calcHist()** function to find the histogram. Let's familiarize with the function and its parameters : + +.. centered:: *cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]])* + +#. images : it is the source image of type uint8 or float32. it should be given in square brackets, ie, "[img]". +#. channels : it is also given in square brackets. It the index of channel for which we calculate histogram. For example, if input is grayscale image, its value is [0]. For color image, you can pass [0],[1] or [2] to calculate histogram of blue,green or red channel respectively. +#. mask : mask image. To find histogram of full image, it is given as "None". But if you want to find histogram of particular region of image, you have to create a mask image for that and give it as mask. (I will show an example later.) +#. histSize : this represents our BIN count. Need to be given in square brackets. For full scale, we pass [256]. +#. ranges : this is our RANGE. Normally, it is [0,256]. + +So let's start with a sample image. Simply load an image in grayscale mode and find its full histogram. + +:: + + img = cv2.imread('home.jpg',0) + hist = cv2.calcHist([img],[0],None,[256],[0,256]) + +hist is a 256x1 array, each value corresponds to number of pixels in that image with its corresponding pixel value. + +2. Histogram Calculation in Numpy +---------------------------------- +Numpy also provides you a function, **np.histogram()**. So instead of calcHist() function, you can try below line : +:: + + hist,bins = np.histogram(img.ravel(),256,[0,256]) + +hist is same as we calculated before. But bins will have 257 elements, because Numpy calculates bins as 0-0.99, 1-1.99, 2-2.99 etc. So final range would be 255-255.99. To represent that, they also add 256 at end of bins. But we don't need that 256. Upto 255 is sufficient. + +.. seealso:: Numpy has another function, **np.bincount()** which is much faster than (around 10X) np.histogram(). So for one-dimensional histograms, you can better try that. Don't forget to set ``minlength = 256`` in np.bincount. For example, ``hist = np.bincount(img.ravel(),minlength=256)`` + +.. note:: OpenCV function is more faster than (around 40X) than np.histogram(). So stick with OpenCV function. + +Now we should plot histograms, but how ? + +Plotting Histograms +====================== + +There are two ways for this, + #. Short Way : use Matplotlib plotting functions + #. Long Way : use OpenCV drawing functions + +1. Using Matplotlib +----------------------- +Matplotlib comes with a histogram plotting function : matplotlib.pyplot.hist() + +It directly finds the histogram and plot it. You need not use calcHist() or np.histogram() function to find the histogram. See the code below: +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('home.jpg',0) + plt.hist(img.ravel(),256,[0,256]); plt.show() + +You will get a plot as below : + + .. image:: images/histogram_matplotlib.jpg + :alt: Histogram Plotting in Matplotlib + :align: center + +Or you can use normal plot of matplotlib, which would be good for BGR plot. For that, you need to find the histogram data first. Try below code: +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('home.jpg') + color = ('b','g','r') + for i,col in enumerate(color): + histr = cv2.calcHist([img],[i],None,[256],[0,256]) + plt.plot(histr,color = col) + plt.xlim([0,256]) + plt.show() + +Result: + + .. image:: images/histogram_rgb_plot.jpg + :alt: Histogram Plotting in Matplotlib + :align: center + +You can deduct from the above graph that, blue has some high value areas in the image (obviously it should be due to the sky) + +2. Using OpenCV +-------------------------- + +Well, here you adjust the values of histograms along with its bin values to look like x,y coordinates so that you can draw it using cv2.line() or cv2.polyline() function to generate same image as above. This is already available with OpenCV-Python2 official samples. `Check the Code `_ + +Application of Mask +===================== + +We used cv2.calcHist() to find the histogram of the full image. What if you want to find histograms of some regions of an image? Just create a mask image with white color on the region you want to find histogram and black otherwise. Then pass this as the mask. +:: + + img = cv2.imread('home.jpg',0) + + # create a mask + mask = np.zeros(img.shape[:2], np.uint8) + mask[100:300, 100:400] = 255 + masked_img = cv2.bitwise_and(img,img,mask = mask) + + # Calculate histogram with mask and without mask + # Check third argument for mask + hist_full = cv2.calcHist([img],[0],None,[256],[0,256]) + hist_mask = cv2.calcHist([img],[0],mask,[256],[0,256]) + + plt.subplot(221), plt.imshow(img, 'gray') + plt.subplot(222), plt.imshow(mask,'gray') + plt.subplot(223), plt.imshow(masked_img, 'gray') + plt.subplot(224), plt.plot(hist_full), plt.plot(hist_mask) + plt.xlim([0,256]) + + plt.show() + +See the result. In the histogram plot, blue line shows histogram of full image while green line shows histogram of masked region. + + .. image:: images/histogram_masking.jpg + :alt: Histogram Example + :align: center + +Additional Resources +===================== +#. `Cambridge in Color website `_ + +Exercises +========== diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/clahe_1.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/clahe_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2187e2e376e5c5ff03e926c7958c45cb8d71e8ed GIT binary patch literal 48845 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

SlR?t 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/clahe_2.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/clahe_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ae6d3cb558e9fad48c60e16cfc21ad2212cbd4b2 GIT binary patch literal 24097 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/equalization_opencv.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/equalization_opencv.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cbfd54886f1a466c6a01ed79b0f21ee28db8c7cf GIT binary patch literal 26711 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/histeq_numpy2.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/histeq_numpy2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..469cefb180a19dcfe003d1bb44a065555cec84a4 GIT binary patch literal 29674 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/histogram_equalization.png b/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/images/histogram_equalization.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8121c421b17ec51537af32bc9ae1b60699f42c GIT binary patch literal 5385 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 for more details about it. It has a very good explanation with worked out examples, so that you would understand almost everything after reading that. Instead, here we will see its Numpy implementation. After that, we will see OpenCV function. +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('wiki.jpg',0) + + hist,bins = np.histogram(img.flatten(),256,[0,256]) + + cdf = hist.cumsum() + cdf_normalized = cdf * hist.max()/ cdf.max() + + plt.plot(cdf_normalized, color = 'b') + plt.hist(img.flatten(),256,[0,256], color = 'r') + plt.xlim([0,256]) + plt.legend(('cdf','histogram'), loc = 'upper left') + plt.show() + +.. image:: images/histeq_numpy1.jpg + :alt: Histograms Equalization + :align: center + +You can see histogram lies in brighter region. We need the full spectrum. For that, we need a transformation function which maps the input pixels in brighter region to output pixels in full region. That is what histogram equalization does. + +Now we find the minimum histogram value (excluding 0) and apply the histogram equalization equation as given in wiki page. But I have used here, the masked array concept array from Numpy. For masked array, all operations are performed on non-masked elements. You can read more about it from Numpy docs on masked arrays. +:: + + cdf_m = np.ma.masked_equal(cdf,0) + cdf_m = (cdf_m - cdf_m.min())*255/(cdf_m.max()-cdf_m.min()) + cdf = np.ma.filled(cdf_m,0).astype('uint8') + +Now we have the look-up table that gives us the information on what is the output pixel value for every input pixel value. So we just apply the transform. +:: + + img2 = cdf[img] + +Now we calculate its histogram and cdf as before ( you do it) and result looks like below : + +.. image:: images/histeq_numpy2.jpg + :alt: Histograms Equalization + :align: center + +Another important feature is that, even if the image was a darker image (instead of a brighter one we used), after equalization we will get almost the same image as we got. As a result, this is used as a "reference tool" to make all images with same lighting conditions. This is useful in many cases. For example, in face recognition, before training the face data, the images of faces are histogram equalized to make them all with same lighting conditions. + +Histograms Equalization in OpenCV +=================================== + +OpenCV has a function to do this, **cv2.equalizeHist()**. Its input is just grayscale image and output is our histogram equalized image. + +Below is a simple code snippet showing its usage for same image we used : +:: + + img = cv2.imread('wiki.jpg',0) + equ = cv2.equalizeHist(img) + res = np.hstack((img,equ)) #stacking images side-by-side + cv2.imwrite('res.png',res) + +.. image:: images/equalization_opencv.jpg + :alt: Histograms Equalization + :align: center + +So now you can take different images with different light conditions, equalize it and check the results. + +Histogram equalization is good when histogram of the image is confined to a particular region. It won't work good in places where there is large intensity variations where histogram covers a large region, ie both bright and dark pixels are present. Please check the SOF links in Additional Resources. + + +CLAHE (Contrast Limited Adaptive Histogram Equalization) +============================================================ + +The first histogram equalization we just saw, considers the global contrast of the image. In many cases, it is not a good idea. For example, below image shows an input image and its result after global histogram equalization. + + .. image:: images/clahe_1.jpg + :alt: Problem of Global HE + :align: center + +It is true that the background contrast has improved after histogram equalization. But compare the face of statue in both images. We lost most of the information there due to over-brightness. It is because its histogram is not confined to a particular region as we saw in previous cases (Try to plot histogram of input image, you will get more intuition). + +So to solve this problem, **adaptive histogram equalization** is used. In this, image is divided into small blocks called "tiles" (tileSize is 8x8 by default in OpenCV). Then each of these blocks are histogram equalized as usual. So in a small area, histogram would confine to a small region (unless there is noise). If noise is there, it will be amplified. To avoid this, **contrast limiting** is applied. If any histogram bin is above the specified contrast limit (by default 40 in OpenCV), those pixels are clipped and distributed uniformly to other bins before applying histogram equalization. After equalization, to remove artifacts in tile borders, bilinear interpolation is applied. + +Below code snippet shows how to apply CLAHE in OpenCV: +:: + + import numpy as np + import cv2 + + img = cv2.imread('tsukuba_l.png',0) + + # create a CLAHE object (Arguments are optional). + clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8)) + cl1 = clahe.apply(img) + + cv2.imwrite('clahe_2.jpg',cl1) + +See the result below and compare it with results above, especially the statue region: + + .. image:: images/clahe_2.jpg + :alt: Result of CLAHE + :align: center + + +Additional Resources +====================== +1. Wikipedia page on `Histogram Equalization `_ +2. `Masked Arrays in Numpy `_ + +Also check these SOF questions regarding contrast adjustment: + +3. `How can I adjust contrast in OpenCV in C? `_ +4. `How do I equalize contrast & brightness of images using opencv? `_ + +Exercises +=========== diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_1d.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_1d.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f94329c4a2d78a050a83777575f714067a66449 GIT binary patch literal 4139 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 Ha^^n(i~r6F literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_2d.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_2d.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5cb5cfe7b4965d5aa9dc8dd84ea778aae1f16c8 GIT binary patch literal 3501 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 ZJX^{r+l}s%r$R}%u{!1dGQNwce*$A~RQvz{ literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_bp.jpg b/doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/images/histograms_bp.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3c0acaef12dac1104b963b8cc9d6969ca1992f81 GIT binary patch literal 3590 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 Y{UWj?=Go`BmO7&U+x&le^zZEd0hF@mMF0Q* literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.rst b/doc/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.rst new file mode 100644 index 000000000..f21ff1f1e --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.rst @@ -0,0 +1,52 @@ +.. _Hough_Circles: + +Hough Circle Transform +************************** + +Goal +===== + +In this chapter, + * We will learn to use Hough Transform to find circles in an image. + * We will see these functions: **cv2.HoughCircles()** + +Theory +======== + +A circle is represented mathematically as :math:`(x-x_{center})^2 + (y - y_{center})^2 = r^2` where :math:`(x_{center},y_{center})` is the center of the circle, and :math:`r` is the radius of the circle. From equation, we can see we have 3 parameters, so we need a 3D accumulator for hough transform, which would be highly ineffective. So OpenCV uses more trickier method, **Hough Gradient Method** which uses the gradient information of edges. + +The function we use here is **cv2.HoughCircles()**. It has plenty of arguments which are well explained in the documentation. So we directly go to the code. +:: + + import cv2 + import numpy as np + + img = cv2.imread('opencv_logo.png',0) + img = cv2.medianBlur(img,5) + cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR) + + circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20, + param1=50,param2=30,minRadius=0,maxRadius=0) + + circles = np.uint16(np.around(circles)) + for i in circles[0,:]: + # draw the outer circle + cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2) + # draw the center of the circle + cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3) + + cv2.imshow('detected circles',cimg) + cv2.waitKey(0) + cv2.destroyAllWindows() + +Result is shown below: + + .. image:: images/houghcircles2.jpg + :alt: Hough Circles + :align: center + +Additional Resources +===================== + +Exercises +=========== diff --git a/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines1.svg b/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines1.svg new file mode 100644 index 000000000..9361b2793 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines1.svg @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + ρ + θ + + + diff --git a/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines2.jpg b/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4022b4543372fbf255adef251fe5fc0455392655 GIT binary patch literal 6433 zcmbVQ2|SeR_kYGOvJEq4{%^~@_jm7ayTAYQe$M-TKJRkg=X=h1&N<(Q{hB=rHkuik8UYv# z02p)t_AoF2TyRcKPB<5I;^N}sM)30>pn>G$+rTe`6c!dj3JHmbNsEi1Bt?aUB(_LM zZr+SWqeaB!1cM8~ z*ew7J&65lEZGayG#sTMqX34XGmk)ZOdL!U~!QmXx{2>6)+fmSSz$wHfyk(a@w}{O# zgj^tM_qmjO9?bsxjiR6xAh&QLzT$#$ghB!r;^f-0i(6RV25~G5f)03AaW$Hs4sRh>xwd#UY-5_)y9(&<7&h14e-K6EcdIgIS~86>cLQKG)HTLf zMPdUi@*r(6x!Pf(xBA8oyWZIk5`355gbmU$Z74x{SKX=|*_`0XbL=6VZ*1mlSgOSF zo+6WRL*A17001X(kZ~oTfQbDM!Ua%nLpkCD88K21FBRM{1h|qy&tgd|?6KFLJhLbi zY;DjGWexjJ;>-pusuEMWaO#c8#Cqc}l{>!nijPg&=L-a9t-z5H)Xb1oyf!|(!spuk zH(moan>;eRcoD^=IzT$jRm3dv7{iHaH;f*_Re-5JHy!ON#frj%qfw}65|V14Q18I7 zi#(Lp`d(>akqtP#f>s0dlJ?Iba-w zrH~{5?`?_|a#}`=x|Dm4^v3XHu|pdsUZM@a>y{Kt6;luT*v4q64q;d({z>Fnk-e-q z*UVRICm9AwOhMWeHYl+eSrdr%m}>=lh#@^jL%N0)3Fi*D_M2+G4^&F?WZu!TF$VYT;pZ8v;<5dOOY@C?>Hm zanpLJ`rt7u(dburQ8}vr`J`pt4SgpU6lzb(iXynf5h2>=tq6B@+v&lhFA-05g)6CD z2`XGq(jR=WQdQ1-g2|n=I<(H^5h+a%Bt`C|y3{1#G~z^I^YfW{sh^I{k93Dfh`#Cm z8XE`%V?P@_L(-DhW8K-H+h@Th-e<95`4=`wMUSHyoG;mcH2AR`95BL`@^qARG=5)e zSISjTpoym-&%`c9%8>K;SL@~8CIY=(=7uO>^P4~>q>`-Rd$O!Sv835I3$J_rvlG6@ zIf=U4vm%Y`gS-@xTXY8*N9N0Ndg;Ap_285Eo`mf;X%j}q27|#N(h;L@spWKfO*zws z=ExMMAAE4sSo{6K{BZcs2M;qlq^itcWjE~VtLVm8vO$v$A4T=Nh{gR4!DY^1?b50< z?(>w+#?x@xCm-~(8(r}hb1Rjc8T{dBSjIZs_1#=&C(FWv5wpU=bdhA5^|(+r-$WWc z$HxZp_%{6VhHN&_uXyRWuC$&{m`I?vvl`V1Q|hbjVmB~T;*$3|JNyc2m@X&$*RMpM z*_}mvEaK&7a}$HB;>}MHiX$qyyEMPgmyL`2t{Z!^2nA|6gDp;Aiq&OH3oZDwz}?&D z(gre$!xlPbtar+e5~2A0It$yf3=I^xx@6^;VvSwGNq)P{RN^>1)RO8NS-ah*Uq!d{IH_(Q1)gDq&fG@hOX<_Q#1g8-pNuNS|E z4aPj#AU>9^&IX2X6Xq}*B;J)`NqnXtD=y%v8Uz}S(7c(sWr>DhA&@ME7_B_Ir)r$* zqBSm=F-@jt;s2z|CmvF!MK_okLox-?OiMJioxl?nsm})Injy_3!AX`R-{{~vN&vIq z&r(SKUDr!U6@^T>%-Xm{k7EOP0vm`JGk1+Np)2$cKrAe^OWL zPj@4q*KLqxgQpZIGxmH3&MIVs|BC#F!arkIr=Y7_3kS}r5lSmFeIit#$R)9hD;BtPyKDXe)G})V%TpH@VCtRcjD<^TJr=z4x;^U-^y`v7AAYMnhqn;EF>HPTh-nTB9;`XKQvmN;M-Jz9uuY z>>o#(uV0TAr)yD0E<{@1GQ4dbRXp8i>9<35uUzd>i5TucXYuo=wphLS6y_(R(a`4+ ztl$zOb#YH8*|367x20Z3)ACFXL5r2Zea!w%8AjahHaso7)k6Bml4(re30>xGK+Jyq>n>_SzO))SGR?Pv6)wKr<#jPuRd@hb6S z%lRf=w+ihqnNrqij_8I<7UDi0nz4|J;k8J1+-20G$78ZoC>L9h=1Jn}SSrM2dk%lr zLzm;Ar13Rz{2@nu8G1~o9$jI&PPO@1jb>5DiM~7VW5sEktqKHp69jL?>>_)OT*~rq z^5+k?yQNGPam^PKJ3k>iJ!yh}q=g*Qj!5~4en4onw6YyQwxNl9DjzGOw$$~_-EDI) z4^j+>K+jhki9@*Vkl6~2kWXFhpZ@uE%yr2?kV;)|t)#4|+|7p-CgjK|e?ZHp) zCO5BDNp62eI3xKYCFg<_vuatlANIm)K=^IkHrp*n%Rfaay_D?nUf^fv^rx`PT;PcN;vtLGWKyYPrXG)Ye^$Dvv3HVmu=UGbcqJ;9 zqknKt@@mZJ%CWNp6eqkhscZHB>!Qx@0NcF6Fd9+8|lzeWgzT zYIU$APTbX7sWH6Rf*8ExZ|%(YYu(6&2DR=;E{ax{Fr7&Aot?XOE-%-fCD9$~_L^V@ zI_d2+G?ZoewKoNh>4Z3^d~qDgmpS>OmVzRvy$*I&jufV!9kUt|ACn#tWho$_#wB7~ zpoe>q@VM9NalMEGPr7K*$&RI?c!99WwJ{8vn+9)*(l zM}|;wRIN7ojmFCs>-cvS2{;I*#6nr#T9WD)VnZ`M0TsY{(V%omzAh#H#@UbA$=mUn zPgY_vTaBbJASZNEoi?Az1`11MZ1DOR;p&+W?qmT~TJyrbU1trL<_p?`Do~qK#k+Ly z{_}#H)(G$8eeH0C7zO*oQrV=kP__E53~j-<-c&EX9KqN^62fRsD#0LDS>HoMfpD?* z&QRnjn+I5q@xBeg3G)^Z5$mO+j_fj<<)L_yG?O0`_^39UTtN{@W@7=n)`32 zp@!Z)y-QCE_BQP)Jk>JtVB*-w(C}Dy`oN?aRWMlranoyhs;?Hx!p42q=v}Tf*ExHd zi}qHEm*PFDZl-LiX{Lz_X|zjrey-!d+-ep>kun*#sLBy$_G`25<|?t}J&EVmSEcAT zx#6nkgpH{}+shZJf322rWMIQQOWosoraN}Qa73YLD9+i_+^%phP zj?eE|aTazZq9xMxUvHB3SNciyc{qkRGm}Y=6*lMd@tM>7$S}#Wt(o@ad!|%kYjahx zb0;O-`AXohJP33Z660Y5cf5#!U%s%)j(HtYTga6cJnKVcOI?QOWJmgf1skMAyduo* zBtO?=Ajec5JF;G|loMumI~XtXeT?6xFC1=UjP0sTt1so8n3SK)A^!QBFAJ{m*XWeh zoa;~WSzA|g{q+jY9nBxmIJ7mAs%fhgf_na)UZ@cFM{TPDAA$tEt@SsFaw+ZUo6{5S zwVjkph5G0}Yybq641f04#Bvyznn*z$?;n?RtR817*lbGTw!+y_O|`$s+ZYwycz3U? zFx6CtE7F*j-Of^2FJNtHrB+fN(kLYg0-@ot!coPUH+2eJDM#-FzKy|=y^t3rCtLF* zTB&Xn1D#j(3leAeILlE@bc+7sXt}a0P*UZ3Q>sSW&#vb$j8)jbDm8h9M zkVfIVIINskX;$e}oLwh=yuKqTR6~iZjJ_UsxmLYra2HMUc&$_`S#;6P0Pnz2_uF_baSv3mri%B?k%@x zHS;kGEAB^Qo-VUN<=({c)bLyQH=(Ea@BJ#I=Ws#q0h4lgV_~QUM}uY`e&T(#D}!J4 z%jNp|LCW{)p!&T!^lf^~YvAy}EWe{U8?B|EH2_ z2oxg%G;ZZWjFK8`xciy{l$uK*rl~wpF;p{t@b+DwJnF3mvDIsj$`|ua_WSuBbW)7t z^c_z6?AMGLlya?ZZ}+(*Fig4DyplT8>Ud6UMa}7CRyUpl*Y4nir*4c2yqvsjLl^O- zb{WaY4)*M*cP%l_oH(_!(%@MlvSKB>Zk#j$_h0s)s}w<0hqPd)Tp{c#_pmUGJ0N1! zCbt8B=-DjdZqFY`{%8lj-xK{c(ngYB7j?~+#+@v9+uuz-=w^_wl=GvQ;bdNzY}ypk z@sm#uJtgck8*H!&sS$v;>ol}ArEmApD`VW?Zj)C&dF_K@78qkGyqgXsSGp4K;+zgY z?1S8~V*r&b#bfuggUM*DzAR&~Z77fplEPk@K&!97OnkJc-Y^()*np&$vWF`xK6mp~;labT;52|MI~+ zPr{o=RMdzK?qdSvF^oyNJx$w9i%^Ydo71A~jgRhfKmM3z$n=aL4tz)9l1&gDw`iAs?HyDr6h8cP*7rwYC$g|CU>U&@DuZO*O8^IPLBO{@CO zXz!T`xR=SBkrMnA@i2VO#WIK>y5nYCv#y1Rr9f*-$HO_l-tacVW3oJ@sG?dU#Shx> zB_NHz%sIo@PA55=^zQ7dcvvZpSG~>%a5-|_P2zYVhPy$pmklP~sY6Sq0;;4vQc~SQd{k9OTpS*7}?>hLLBBpv{IypUBIbTtA40J5)5AGXt2N z7Dv0;K$zKuD@Z~c7$Ng34$tsn8y9guuSo)IA)>n{Zpst4OaG2Be+9su4kNpDko;O^U=Kpuu?nep#wnzD(-k?DLj+Alg z{Bp081AmIS&)$ru=}JZcK|3v>-54QSv00qadTza&o3Bbs32wN~(RAYd{1>qhc}Arq z-MkUM@eG;I({?)ROhcYLa^Lmr3z?V4P$56>`f|D7=IBv>o-U-9^6kPjDN&^mpVIqK z2&J{67sd8d&!WY##8T&Oa%xx)%Y=(>E74PwgKpw;HDf3h)t zg(b)_uAG%5JZ~6fgI}JFC9l$Y2vkury{w;lt(73`t&8nlTrJ04C4QXOaBlZ&jI9I# zp=TNkh|eF2#TF}&9!3eN6^J`h%}SiK literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines3.jpg b/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2224cb26479c57a599031b54edceefd0db447164 GIT binary patch literal 43726 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines4.png b/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines4.png new file mode 100644 index 0000000000000000000000000000000000000000..0bbe8cec4a3f5d9a896565bf54fe85fe0dc783ed GIT binary patch literal 19161 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 NF^5~hs*O>R{{TD5x*h-k literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines5.jpg b/doc/py_tutorials/py_imgproc/py_houghlines/images/houghlines5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e4d66792e2e28f4b7a1a9802090026798790617a GIT binary patch literal 42619 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 n63;fA&+2&$pIw#Xkdb`_ ) + + .. image:: images/houghlinesdemo.gif + :alt: Hough Transform Demo + :align: center + + +This is how hough transform for lines works. It is simple, and may be you can implement it using Numpy on your own. Below is an image which shows the accumulator. Bright spots at some locations denotes they are the parameters of possible lines in the image. (Image courtesy: `Wikipedia `_ ) + + .. image:: images/houghlines2.jpg + :alt: Hough Transform accumulator + :align: center + +Hough Tranform in OpenCV +========================= + +Everything explained above is encapsulated in the OpenCV function, **cv2.HoughLines()**. It simply returns an array of :math:`(\rho, \theta)` values. :math:`\rho` is measured in pixels and :math:`\theta` is measured in radians. First parameter, Input image should be a binary image, so apply threshold or use canny edge detection before finding applying hough transform. Second and third parameters are :math:`\rho` and :math:`\theta` accuracies respectively. Fourth argument is the `threshold`, which means minimum vote it should get for it to be considered as a line. Remember, number of votes depend upon number of points on the line. So it represents the minimum length of line that should be detected. +:: + + import cv2 + import numpy as np + + img = cv2.imread('dave.jpg') + gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + edges = cv2.Canny(gray,50,150,apertureSize = 3) + + lines = cv2.HoughLines(edges,1,np.pi/180,200) + for rho,theta in lines[0]: + a = np.cos(theta) + b = np.sin(theta) + x0 = a*rho + y0 = b*rho + x1 = int(x0 + 1000*(-b)) + y1 = int(y0 + 1000*(a)) + x2 = int(x0 - 1000*(-b)) + y2 = int(y0 - 1000*(a)) + + cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2) + + cv2.imwrite('houghlines3.jpg',img) + +Check the results below: + + .. image:: images/houghlines3.jpg + :alt: Hough Transform Line Detection + :align: center + +Probabilistic Hough Transform +============================== + +In the hough transform, you can see that even for a line with two arguments, it takes a lot of computation. Probabilistic Hough Transform is an optimization of Hough Transform we saw. It doesn't take all the points into consideration, instead take only a random subset of points and that is sufficient for line detection. Just we have to decrease the threshold. See below image which compare Hough Transform and Probabilistic Hough Transform in hough space. (Image Courtesy : `Franck Bettinger's home page `_ + + .. image:: images/houghlines4.png + :alt: Hough Transform and Probabilistic Hough Transform + :align: center + +OpenCV implementation is based on Robust Detection of Lines Using the Progressive Probabilistic Hough Transform by Matas, J. and Galambos, C. and Kittler, J.V.. The function used is **cv2.HoughLinesP()**. It has two new arguments. + * **minLineLength** - Minimum length of line. Line segments shorter than this are rejected. + * **maxLineGap** - Maximum allowed gap between line segments to treat them as single line. + +Best thing is that, it directly returns the two endpoints of lines. In previous case, you got only the parameters of lines, and you had to find all the points. Here, everything is direct and simple. +:: + + import cv2 + import numpy as np + + img = cv2.imread('dave.jpg') + gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + edges = cv2.Canny(gray,50,150,apertureSize = 3) + minLineLength = 100 + maxLineGap = 10 + lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap) + for x1,y1,x2,y2 in lines[0]: + cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2) + + cv2.imwrite('houghlines5.jpg',img) + +See the results below: + + .. image:: images/houghlines5.jpg + :alt: Probabilistic Hough Transform + :align: center + +Additional Resources +======================= +#. `Hough Transform on Wikipedia `_ + + +Exercises +=========== diff --git a/doc/py_tutorials/py_imgproc/py_morphological_ops/images/blackhat.png b/doc/py_tutorials/py_imgproc/py_morphological_ops/images/blackhat.png new file mode 100644 index 0000000000000000000000000000000000000000..969bc20f2df4596dab5498593f912adcf74ddfb5 GIT binary patch literal 1146 zcmY+EZA@EL7{}{C)7uNtql=cqDmWCqb(v@B)rCTtA37gfMk_mz-3ySQ8 zkv43+Z0+r!t9FpaDlAsgT|uof(n2 ze|}c`?%r|0H!6!n^Q2mS)cm#ogeGB+{{U{VUe7P7t~I8F);*DQarql#ez7T7W*QI zQPRS~smG8>+Q@Y->vV_l_t9*wvqL?+ND8fzT1@PPYlBl&Tz*0=urF=SE|RPC#JU4h z344Q6J%WdzSYW^UmUNXE56ku|z~O+)M%A^Er2_jE3tpLMYV*`7K%-T(3f{Ih7YAI2 zxKYy#oWaOi<2?6(U9Cm>11|5`MNf6?#dhA-e3wJcE&|yad4LiYl0)0aOPj;m%+d{S z$XOk?D1xt3LLsLc12#qmO_VID+KX`f`s(KrM3 z$5m8=0{BpQpR_tDxc%{$sQP(u6_q}c{e&SIPK~BH=v#!Rw3$Mnb=#uKR=ZlsoExd~ z*aGBISTx6rn%;9_)AX3XRJ0m=d7e;(*vO8kX_xcN1YM(P&tq*-MXQ}(NPgefWR(d4?LaUrJ{q*21@AU7p)Pyqx~_CrEY z8ZqawB}B;zV^V+$tHCUWtp*#09D*wCJAE+U2TygBKXrMSjyx8d2XDki{dya16w9o586ZDIT{oTwRTa>b(s`ys%?uLRymlxhq9at>H7_NC5h}aH=fIL}s;tO)6DEcO zWVe1n`hkVP@)%^Kqrng$edxABT?g`5Ie8$D5lsLoD@y~#CV<5ZYx2riNy1W*JL76W z`eS<%ZB%BV`zF#9n>m5DL)~$fC|5FFo*}EKsO5iI@OL<@*B;US=}o`)QG6>@@cm}} I0`}_2UvtFf%m4rY literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_morphological_ops/images/closing.png b/doc/py_tutorials/py_imgproc/py_morphological_ops/images/closing.png new file mode 100644 index 0000000000000000000000000000000000000000..a034ac249695a99b00b8f4c2e708b6c8a7f3f9aa GIT binary patch literal 2205 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 X^KSg=fe**sQ*TniR+in{u)FOS`w4ej literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_morphological_ops/images/gradient.png b/doc/py_tutorials/py_imgproc/py_morphological_ops/images/gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..44590016a050eb504f4d0623e7062ffc45861ed0 GIT binary patch literal 1995 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_morphological_ops/images/opening.png b/doc/py_tutorials/py_imgproc/py_morphological_ops/images/opening.png new file mode 100644 index 0000000000000000000000000000000000000000..b63e99ed9da7b769fd4fe45826f1f5118fb24297 GIT binary patch literal 2082 zcmZ8iZB!Fi8U~6e6lgL-Es3HqNe0s5Za%OUTm@l-02eGGm}5C53=p(+p&(Y24~YWK zK(s~zJ5gHBi8NB>s42CDEv14Z@)2P@Srsd~k^)M*T0KZn5ZybR-Tv4gbMJkhdGEdN zecmtn{lpkA521&Xlap7hir5V2d+@7Y0tY9@y4#~pPKzgFi49wdobPnWkNh0%QaSqS zjxOi@^TQ>-X)lhwvGd>?_lTT(es>3(tFzub(NvAy zIzL_N=%N<~u4pLwB>>1_qlr^ZWhdM<)3v6ru8s!PTca3@j-!I7^6GIpP-Cc@kD( zks#cOtGc|>&2*QNl z-@N~ND`WIcdN{QDW0^FG2q~KzompwR+{E4haX$RR>1DIiIl0YWB(C z_K7Nv)~o{Z13a*r3WW%+5Lo54{A?l}lG1*4jQtiQ8u_K%O}9bf&VeyPaBVBRWQ}Qs zRcaUYQyZ?^ztSFH-i`lH+1sWat0O6k$XzgUB>fM9Ywvt#c=&Nxe;Q zW`6;35cEMMAkh`){i+D%Gf-Lt5(%7#o<5a)H5d=XP>OUcwFe3z| z#s^FUXoj)3*|Mn+_*c{U+VTgCs-?@5=ZDgyW1TXt3HUFSpCtNS%?;aAHk~@2XY(~E zb?Rr~%I3JEtJ`P@dCAD=2_RC*sNSX!^z0zGmYLX2K*BgpbTszJ5|9vZQ2JO3I_5mA9KC5A zgw#;RNyoMLQ;NB zuIpv0R2`-J=4=?w6WDnJ^bvQWhrlk(&5n0-5K6yE)k7$R{kyFWDywzyWnvKDGT;jB zA{Uvnq2IQV|9mw4yu10A$t}u@1SflOIQ&177yja<=p+}nuK}^pB1sJhvjm(4G2q$w zsr3EYEf>OXddj@=v%^R~EF+qha?~~oB&pbDZN+efAm9dEFvC>>JXNI7Qp42(?1rdd zVx84*>I=1@ZT9A?m-CCaS~l(MdrGgS&xF5vazET1ruZ=TN?jkdn?AFDekOeXKVV0F u^w54g2gVt>+wmdSAYM%We=~M;&9AKA^Y#TxX!BmK`NwWdB+f=^4*UmVeU2^w literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_morphological_ops/images/tophat.png b/doc/py_tutorials/py_imgproc/py_morphological_ops/images/tophat.png new file mode 100644 index 0000000000000000000000000000000000000000..18f5084ca5fca00c89d72385511f420e03f6855c GIT binary patch literal 1531 zcmaJ>YfMvD9Ip?g+=4=BX?XXxy`{EAc{#xsa4FE1haHwjg~6KLfkrZ2<0ixhPVdEm z!fr1qP(x&Qb{laOJA*n*=i=Rm-9|D^m!M=g*Kxm)5F`!J)H&R_e%yzBIKOlLkMlqO z$NB&JEVY$!Pzodv2;xjeLmk-v1Z!9bK=9Yz-$MdH6k{@!TD#Ugy?^oMwL(Gp{ab5q zuD+bl4J8<&#NGp+KKNoNGpo4v%-HL~$j9LY?w3H}I_~6pHagER%05#lapLvXJhX`& zS8TwgkprH#Lu{MkDbqWz4Sw#2|L=fSElZ0^?-IlFI>))=qU`BLZsVdXB|KvM$*1n= zUlr-XcUXa4-E%2cyq5J0tZ`QJ_U+2Ie(;X{!xV>igffdN?h?@vYDIp*c*nw?z|ldn zm8Nb8U1{)-DAJaoEkbt@eW&U<;bLNYxZbJsR5h`U<%48~9qyr4g`&uir>x0YY?>4u z31l9PzSm4PC=Iv$!fjmCgTsC))piy`I}dT!jpzUu(FeuKg%fX{6jPE(}!vSk{~ z?^A4{$*bI#J~h}w%;h~ex_L;6R`pxhCK@T%a5+WtDGx-%N)Of%K(wD3u14VnJloAH zzGQ~=D0~&qw(-!%PBq%ayVUr#86Pyl3I@o%e zd@dx$6paLW4?Nu8BGE=vua&1!WE}7DkQY%T6OUdLYa{YK?D-Z66p@1fB;isGS2`Kv z^2@Y~3EJ-M*0B6Bj{X7VFD5|Ux*4u?8;~U?1z~Hrwh7!5YrBD0~Co;SNO6l#IE&3XH|iVz3N1zaXTGQth0q z0jv2{RiL~m!{Fil;5L?)m}GYvoF zrYuHXCmT1h{__4FGiKOXC*3m$2C_Y(r)=Q*^`_keEow>|;FOd~?pAv7T zV8$@Z^rpeji874zks##CKx#;ktS$h5!O`!R>?3KW*9-chRd|#=7V5J)A7G7Ll@+4h zm|!mPifID#tyK4t>GmqQHLvN3Sm-)VcF@Qcn))8C%0Q8HOgH5bCMIv?aZ#RXuW6?# zCv$lQMfQ564HzQHt7~$)EJoR3TxyGP#YzCr8Z4h>&{-7OKoDNS{E9s|YEoMBEIbA) z8<^@8yJ7)%7chobta-vCRp(iF44RT?s$rBZ;nBDq{PA}f!zPI6#QRpMat*In$78T2 zi6$#XSqqQGVxX78y9*Ck0)jjd0nGM7JZ>Uw6BsgsO;`fvQC^hjCft{R6;Xb2X}eu9 zlrwanF{th8GFDN|!Fue69OnfenTvrQ;;SLQnbb-)<1$QQ6aCF)*vDg)1HQ^-@e8&v z2tDNXh1{{KRD0F3>> cv2.getStructuringElement(cv2.MORPH_RECT,(5,5)) + array([[1, 1, 1, 1, 1], + [1, 1, 1, 1, 1], + [1, 1, 1, 1, 1], + [1, 1, 1, 1, 1], + [1, 1, 1, 1, 1]], dtype=uint8) + + # Elliptical Kernel + >>> cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5)) + array([[0, 0, 1, 0, 0], + [1, 1, 1, 1, 1], + [1, 1, 1, 1, 1], + [1, 1, 1, 1, 1], + [0, 0, 1, 0, 0]], dtype=uint8) + + # Cross-shaped Kernel + >>> cv2.getStructuringElement(cv2.MORPH_CROSS,(5,5)) + array([[0, 0, 1, 0, 0], + [0, 0, 1, 0, 0], + [1, 1, 1, 1, 1], + [0, 0, 1, 0, 0], + [0, 0, 1, 0, 0]], dtype=uint8) + +Additional Resources +======================= + +#. `Morphological Operations `_ at HIPR2 + +Exercises +========== diff --git a/doc/py_tutorials/py_imgproc/py_pyramids/images/lap.jpg b/doc/py_tutorials/py_imgproc/py_pyramids/images/lap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0df635046467d6f9630a490990d4c6678e72a756 GIT binary patch literal 28842 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ⅇ5;O@NSGjr29DTp-OS%xLeRQ{= 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

&+We}b`NTTG)W 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_pyramids/images/messiup.jpg b/doc/py_tutorials/py_imgproc/py_pyramids/images/messiup.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ed1fd7e93b71d3c32fc22b8a8cad527cb5fe0e7 GIT binary patch literal 15088 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 A2mk;8 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_pyramids/images/orapple.jpg b/doc/py_tutorials/py_imgproc/py_pyramids/images/orapple.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49da80fb3d36f954f36cf1c885fe081c831475ee GIT binary patch literal 52135 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_pyramids/py_pyramids.rst b/doc/py_tutorials/py_imgproc/py_pyramids/py_pyramids.rst new file mode 100644 index 000000000..f5a0f015a --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_pyramids/py_pyramids.rst @@ -0,0 +1,128 @@ +.. _PY_Pyramids: + +Image Pyramids +*************** + +Goal +====== +In this chapter, + * We will learn about Image Pyramids + * We will use Image pyramids to create a new fruit, "Orapple" + * We will see these functions: **cv2.pyrUp()**, **cv2.pyrDown()** + +Theory +========= + +Normally, we used to work with an image of constant size. But in some occassions, we need to work with images of different resolution of the same image. For example, while searching for something in an image, like face, we are not sure at what size the object will be present in the image. In that case, we will need to create a set of images with different resolution and search for object in all the images. These set of images with different resolution are called Image Pyramids (because when they are kept in a stack with biggest image at bottom and smallest image at top look like a pyramid). + +There are two kinds of Image Pyramids. 1) Gaussian Pyramid and 2) Laplacian Pyramids + +Higher level (Low resolution) in a Gaussian Pyramid is formed by removing consecutive rows and columns in Lower level (higher resolution) image. Then each pixel in higher level is formed by the contribution from 5 pixels in underlying level with gaussian weights. By doing so, a :math:`M \times N` image becomes :math:`M/2 \times N/2` image. So area reduces to one-fourth of original area. It is called an Octave. The same pattern continues as we go upper in pyramid (ie, resolution decreases). Similarly while expanding, area becomes 4 times in each level. We can find Gaussian pyramids using **cv2.pyrDown()** and **cv2.pyrUp()** functions. +:: + + img = cv2.imread('messi5.jpg') + lower_reso = cv2.pyrDown(higher_reso) + +Below is the 4 levels in an image pyramid. + + .. image:: images/messipyr.jpg + :alt: Gaussian Pyramid + :align: center + +Now you can go down the image pyramid with **cv2.pyrUp()** function. +:: + + higher_reso2 = cv2.pyrUp(lower_reso) + +Remember, `higher_reso2` is not equal to `higher_reso`, because once you decrease the resolution, you loose the information. Below image is 3 level down the pyramid created from smallest image in previous case. Compare it with original image: + + .. image:: images/messiup.jpg + :alt: Gaussian Pyramid + :align: center + +Laplacian Pyramids are formed from the Gaussian Pyramids. There is no exclusive function for that. Laplacian pyramid images are like edge images only. Most of its elements are zeros. They are used in image compression. A level in Laplacian Pyramid is formed by the difference between that level in Gaussian Pyramid and expanded version of its upper level in Gaussian Pyramid. The three levels of a Laplacian level will look like below (contrast is adjusted to enhance the contents): + + .. image:: images/lap.jpg + :alt: Laplacian Pyramid + :align: center + +Image Blending using Pyramids +============================== + +One application of Pyramids is Image Blending. For example, in image stitching, you will need to stack two images together, but it may not look good due to discontinuities between images. In that case, image blending with Pyramids gives you seamless blending without leaving much data in the images. One classical example of this is the blending of two fruits, Orange and Apple. See the result now itself to understand what I am saying: + + .. image:: images/orapple.jpg + :alt: Pyramid Blending + :align: center + +Please check first reference in additional resources, it has full diagramatic details on image blending, Laplacian Pyramids etc. Simply it is done as follows: + + #. Load the two images of apple and orange + #. Find the Gaussian Pyramids for apple and orange (in this particular example, number of levels is 6) + #. From Gaussian Pyramids, find their Laplacian Pyramids + #. Now join the left half of apple and right half of orange in each levels of Laplacian Pyramids + #. Finally from this joint image pyramids, reconstruct the original image. + +Below is the full code. (For sake of simplicity, each step is done separately which may take more memory. You can optimize it if you want so). +:: + + import cv2 + import numpy as np,sys + + A = cv2.imread('apple.jpg') + B = cv2.imread('orange.jpg') + + # generate Gaussian pyramid for A + G = A.copy() + gpA = [G] + for i in xrange(6): + G = cv2.pyrDown(G) + gpA.append(G) + + # generate Gaussian pyramid for B + G = B.copy() + gpB = [G] + for i in xrange(6): + G = cv2.pyrDown(G) + gpB.append(G) + + # generate Laplacian Pyramid for A + lpA = [gpA[5]] + for i in xrange(5,0,-1): + GE = cv2.pyrUp(gpA[i]) + L = cv2.subtract(gpA[i-1],GE) + lpA.append(L) + + # generate Laplacian Pyramid for B + lpB = [gpB[5]] + for i in xrange(5,0,-1): + GE = cv2.pyrUp(gpB[i]) + L = cv2.subtract(gpB[i-1],GE) + lpB.append(L) + + # Now add left and right halves of images in each level + LS = [] + for la,lb in zip(lpA,lpB): + rows,cols,dpt = la.shape + ls = np.hstack((la[:,0:cols/2], lb[:,cols/2:])) + LS.append(ls) + + # now reconstruct + ls_ = LS[0] + for i in xrange(1,6): + ls_ = cv2.pyrUp(ls_) + ls_ = cv2.add(ls_, LS[i]) + + # image with direct connecting each half + real = np.hstack((A[:,:cols/2],B[:,cols/2:])) + + cv2.imwrite('Pyramid_blending2.jpg',ls_) + cv2.imwrite('Direct_blending.jpg',real) + +Additional Resources +========================= + +#. `Image Blending `_ + +Exercises +========== diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/blurring.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/blurring.jpg new file mode 100644 index 0000000000000000000000000000000000000000..793e737a1e8e119b10f1af3451611ee9a632454a GIT binary patch literal 28934 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

J+RP_2l?YDs>Lwh^6c@eL{ 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

t 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 Sgzf9YcU(I*Nk>26aO&@|Ta;@6 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/colorspace.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/colorspace.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a4a32eaefcae60a8996c384aedadf8524810e7a GIT binary patch literal 2494 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 Q#^ceiiYS2AKgk>X6BfvL!vFvP literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/contours.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/contours.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52d31d1ef1275e753a314eada5ff46bd53a6d54b GIT binary patch literal 59104 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/geometric.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/geometric.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cbdfbe17cb6ab6a4ca7d49859eaf49888fa09f64 GIT binary patch literal 2594 zcmbW%c{tSD9|!R77z`sbC|hJOBeLYSNRweMWtdUPI@zvlS0VczGf9?^waHG>WGA=m zN!dae+4qn=d$yP{Ki&I#e!u7W{q?)|eV%jvIiKe|pVv9hbC`q734n)y!{Y!D2mnBb z17MB-mjO<82nU3nlY@f;3gzU23BqCA+%VB&{JesaVo0Qfn7Fu@Pfd+ zAZ8N%FD(laYmi} zsGb!>((TyUptvj!q(+L$fpaokBj%v#lp%8W`+E8fmnPFCzzL&P2vnYpSm8z%I&D+*&vQ%8gW^rA2^Zc z^w;>U-9JMGQ0FJ5)_>Cel>L9O2meU+AJ~6g!@v|W!i-=Z6#t%H;3V%nwkI?tv2xMVURYDd%SDRXUcM29Kl;RK1tu%I zfZ=`+A@huDSYcpr>!Or2XN_YZoc|jwl?G>Twkt!^AxyyZ?e$vnd%>yg4nEz~&KMi} z{f1!kt-km~o4!vD0XIn5ORr@w!B?Il?$b64wyzRGbl)|COkN?D7?*9L!fhMiMzk&d z!v2@dTd};a^F_Bh>;iT5(jPy}lDyI??z5#u*#=S(MJsbVT3^qTH<-{r0`1=6mZ5MVt zN_ng3jw&LH@FHKwB3gIKIdxl+hbzQf%SVX3%QIP*MR$xVvDi(|;pzY{%T~pIZrESO zAm+)?4O!2zDZjxa_g<2f<}u^2i$uG%9lZ-^^f zKzxz+BDeKX2^@ui5CjdI?z&TS5NqG5T+Re?Fiaqm>f>g4I&O08jK=x+(cJe&G}Y^V zLUV{BpT3=2&!UCzZ799fL4`Y|Ogr~XyB22eGai+wcCU)fHQ{|Em+#nlRP1N7f_7n8 z=*m`+zDf!7nrMILZ^k@7e1F8zkn2Kfl)3E^CU8_mq?8FL*owsLn>3K#9w<>1tlMU0 zx;9nzZ>}nwtRUGWLzTOth_r#H8>SW=cV!x5t8jb45qsP%nBd?=xfT*~kdbJq3{}&i za>weqwJBA4(;r<>kSD4m<~xaFcwf_X8BwjLd( zR$F&`!b{HWj*rJ(p^x#OJcRZFC$KQ`gwjCaI(|Btca*(F#?>)#{ptq{ezy4qLjD)y zkC+U2uPsTbL%k+lDcja-Y3PwQnoYeh=FuKc^_rniob;-bi5&_?sNkl5pv&R93I=~| zaSuHcym-b!mHO7S`2P0ms3y#{Bbit4Dg`G*>b6f7mk7i>oi8{Z@}fGB(UjJ}H`4OC zu2yinmw8{M(I3CQeU8v$nZHsuW+e|4gAoK zU%M@L)Y15B*qarO+`n&(P6JH|>*7p6zV8J^(bJpnL=n$dq*^T#fcFmA^-d)hzlzJ6 zG^;`xN8^Z^$Qi2+vvt9+5=H89>O*ToO;DEQJ3uvz{A{+Aj;==IQ2`~dCgvVs8%bs3 z3(B}tEC~_ca}@1Wva1RDIUeauVH4D`b^~m&PqZJ=rmv<1oVmUwVgI8FjK*uE>;vI>AtXKG4-2>EQ5@y1UKI z1gv_G*>qS$sW#nOXre@8&f4 zWu@?>F-VfqviR;{pxl%0)6Sl?UQ=}mztjtzK~k(%M|m^bjkl8<8^p?zr$P{Gv320t zAp8!dJEm43`J)WgfZ}y=A{R^AG${GLw literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/grabcut.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/grabcut.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8445e8e5b747210837bfc27760ccfc004d2fc878 GIT binary patch literal 3348 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 Xpses!ZU}95GwCclkI@YzZR$S&UHCQe literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/gradient.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/gradient.jpg new file mode 100644 index 0000000000000000000000000000000000000000..80c9ae0cdb991335b5efdc39914f0ddec48adf30 GIT binary patch literal 66968 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/histogram.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/histogram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad90425cb1350fe7ba66b050c46eeefe8cf8c81b GIT binary patch literal 14904 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 AwEzGB literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/houghcircles.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/houghcircles.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0eafa557b276d7157003db42c93461f341df4a37 GIT binary patch literal 2834 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 TinJyC0UQ#Fz?1hAq250MG0hd^ literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/morphology.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/morphology.jpg new file mode 100644 index 0000000000000000000000000000000000000000..19204914a2c1d7c0e62759290c4215d806d51cdd GIT binary patch literal 5431 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/template.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/template.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08dca1884793e2876494c9feb07c2e98c3529896 GIT binary patch literal 4995 zcmbVPc|4SD+rBN+5Sa$q3L#OptVx)VWq6n*M4?47WH$(zqR3Jr%VUYh63X`2vyOdD zlYP&geHq)#Ff;czJ@5Oy@B4gzecyN9zx(>y87yMjB~7Pp_HCb2eBc?(dYp%sk6%FiyoBV1i%QBWmsPK*>0H;<(>FjG zn%y$Du)J+${m}l=V+TjHlb1Kf$Jg(vf5^*Mp<%DXBVymj#U~{Go|K%KmHja%H}BKu z(z5c3%BnBbHO(!pZS5VMUETcygG0k3qhsT-orOW3o1Rk zMS)G}zP8c%-bqi0|K&EsxRJ@WM05p;)p*vZhpe=F65YQ6w+lo{0Ks}pFG!a1AaDYk z4FcaI^RP3XSc392N~+yFBK1OLQd9|d=K4aUz~eH4=s3F0+_zv&W$9M`p7`JyM@`2+ z(U7JO2`5v2Z|^DNQ{8>>7Nt01sFa)_d`)P&KX5+J~3Izbz)QQDUNG-IRh?A^PEr5GdDQ=Jm!N`3ce zwUKK|g+cZ<>2uIFHaXr2Kes#eLl(jtmIM6(CxEBPQC2lmYF8kq-gmve$dM6#HB4+= zQ{0Y(GY;)vYyMLUQ{l>ffOp(UI^Mj+$6lcFC{9l2Lkof2zI*U~`_)q96N)KjM#Izj z=xor}=)#h!@QBiGqvURySe?SI(G80rAOhRZ(#*2KT`8B9b zNO(4_Un3Gl(2oq%pJg8M-Z-|@lGs(C<1Aj3^?27{_~&)xxrw+&hOrR#D2eJ0wP{{; z8zl}=l2x&F-S;o$=zeW$m#FR>gfv%k>dZc~gRrtYoHlB$(_Yj78NAd8r=_M-jO8dQ z$KHd0wrmCnyyyaf*6*cJUY57gCxxxDD4qK_R?0PkP|4g0&30m=T2Yci-~fY{LZ{|8 zv1wX4U*pX-OUG|45*9$b<`9dx6_7hRSy}$@&3Cg{%?jSm$NKZ~k&|cc;fB+Ny zH{sc(sm}jAdFU|On$md~96`p?PBYP~FoX972sAE$z?^dq$?6D+Zn#P~NSu`nyzunC zY~~}jt5aE@pS)UJ0AM046!fibLfjuqYA)wg=Pn?}kV5;q+?EU_WWv#H5a?Xx zK+pgP7|i5pvf^GU8SJ~ACKWXkZ#_HN>^;FU>n0iyCR5&X7IN#t4fl>T_tSjE{dpI# zkIXz=uF8duxY<|is`F2*Db(00z9+q!jl>-zjhJt@tw&0a2mVCJ>oG@Mvwz~#9k05P zyy)#lKBhz4+E?x);ak`FF4|QgZW>QOd0Wxs&3(DaOp*9PTUe_sJo)#oJ+4+a1pX#k>fNTgEj*>NjP7 z;PpappRvA^F3qK=sZw^L)decX^x{KHSD==!S02`J`iJ4b-AQtpu^7hpNrJ>Gvgr23 zPa}0HuWBZqxw*+SJdRx~S1Q}tSo*2!00KgE_+Jq5&ma!lRkQlx-jVgtCQT*WVBJH9 z+>{|SmrLOUWU}v%i!5TR2KXyY9r#KtVFh*+LbfdPL$%hxTI^o+IgM+?FXG=&blucN zcjll5-bc?CSzpJ5^FN15r3$g~H5EL_Uq>JDE6Yg77fciDVo@}q=8rwSvX652OXjRQ zC?VO0#k7}Fcl4?%>xQKZ<=lAMhXY>ECojhR`HKI!!&wZ#>9Jv@hNpxq{Bpdwh-tIq zQl^g5JQc7lw#9oIJ#BU;8u(TlSVu63P+Q4CjG$4AX*hBver7}&1gSirO-PBiz}RwA?|Gb1R=L>NALyn|*U z+?KvIj$Ju(s&$l$JAl^peX4=)r-|PM~QV%Td9b})GAGNePvbo*laimKs zMY5+7E1Bg4h9=V!_?ReEe^>kZs zf@fWOr~vsQ$pWdWWY8$PVT(@aLMwhslsXMhf_+pgZPknG&*iSb)f1^Px>{Yfs7(+E zwk-#NXanq|-J%WbwYquX+PF$&wv(@vOisA#@PVWlTM2)ur@mPuzsB<-y=kM00Kd^B z&l_Cfu#dlaJ2F4eu43SOcRJu+%$5mft7=n?>3~~659RD2SJ3VeZYHt-+o_5A3dm8K0;cRxD8WNF zKe%$McE_$OXz2Rqu17wERBiCjUJz5TuOB6+rjxzWsueHWsveIyK+?|wRwMafA zqX4d|t9V_OY)UKqxnjE)p7!^4m`%E0uqMPqGN0E7&>AlPpm~6HdGh)`Exjbt^-^Wf z4XuS4>SXZo2&!njGIqC=c53PHG9~0J2>2c**Q|eQn~GFC6KjH0HqrxuclHQ+dd+N8&#nx8 zJhtUn5p>wv)Zo}fE*?A#Iq)Y%7W&14z;%){G`RdJMMf|t#M1ovhqdy}>X>LC7Rv02 zZ0h18kF*~gs3ccbqd(%8Ms+k=eM*`6_H(e?ejA-j;_T4#?4M{hS6YE#X5rq-K%DPOP%1@taUYB)iMrk?;@%<~L_T$_4x; z)rt+{IEiU^8>L!jyfI_EJ}YvMf)^P^ESv!WbGq_+<-9!Nv2xfJPpN$Oqr=7H4Bq9^ zS1-st!^=k!e46d0m~=9m)!Qf2>(k>n<%xgliwQX&(Un$LtDiot#s&mdxc6{pD(ao2 zgirX%SMYaICvJT_!OGUuBB}yur<=Jp zwE67|J_XK9)L+)+HnmF=nk7#i+1Tm2{pw$rk;rMspj+p#9jT`l5#yC0u={PEMin@K z{bxtyo(@AW1v<~Cvw=Xf?#G5C7qpa`waiqLey#nvOV=1S`RwQ41yvks9{*^_ciilQ zIp3HoZYJ&2?RHFd+?^oYHcW&zR0RTQzQV-iAs0o{U@4X?``_PP)iYSL;V8`gv7+{2 zI4N(UzGAVUke#4Pjv1T@Aw_ie;THIzN4ezWb#DR;e(bYcsGY+%&Bunf$ilTlnEf4o zYQ7r?sBa>+`tpjEC58I!;rN6%&%ZhdN=+!i#z3Isa60%tK{w9dN7jWlEDsik27zpMvmj=Y&zkKJwhDvdYzUuC zXYCT)80z^p_Ok5JO>sQOB1`AqraK$%Z$Xw4AD#ULi(96gb-whmkN0j2a^7(gddv*Z z5KnZ&(R$aV_SVlxsF%jwuSI(IX`CME27v{9`se;uWT{&uO`?*J*jn$^T50j~$MC_t zw`2?SLEbfkb%PtIYUNhP=^gek>h!A9qS?O+ZS#$4f1wF{Ot-kYwXLh0)2)Vz@};Ir zzfC%aL=_~TPt7)*(wXC53)^EU6pgp&6bq-R+J8<_d z*{EM*y|+AoeXhz)xt_x=bXZ6@KL6mMlJc;D2MHexF8+V>_}Do3KS2yGZ4Fwwv42q2(J=*IhKXj4NWL zjzZ3FRdnLtHTukx=l?imzO1e*X|_z>TApPvHUk3 z?fn+?*x!b+XM3`UWqke*o#zH4CV@aGBK7q@blzNxLyKF8z~Xeca!vyQ8tuJ*bUyB! z0^e+4dc|*E#Lfr$fdqVSRU(x>%`D8Ri-CZREC}pH_%CXTI{ORN=Ud$+VXv!c6bN|p z;91`Xkxkw4>0ab{4P;UA0SW}(zuu0fde?$L|An=#_V3<1s{`q6;=YT0GFQcN;s*1Z zWMU5C^ik$#M_r&BVYl(nwwmB|cc`dnYc6e}(dL0Si^@cM7QeQ?MF8zXg&E9!>O^Ro2h3~(9plT<`J*&Y-%#4UKxmdSisF313 d^fq4gLQbq^8LcnP^+1>yE literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/thresh.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/thresh.jpg new file mode 100644 index 0000000000000000000000000000000000000000..11b2c6c087079a246ee6bb76d5a9e32ac94b63c2 GIT binary patch literal 2481 zcmbW%c{J4B9|!R776KSW5L+dPE5& zV>bw8D_fQfiZZE0Gg)RDp5{^g&hK~5^Vje9``q)s|J-}-xvz82=kj0iX8=h@TL)VJ z0s#QX<^cGUfHfc@EDQ<@iGUy|Dk>rdlaYXli^JrQQg9h11r=o_1x3Z}J9Kt#SJlQS zDry>OYU^SR4GmQ^_L&>&o9P%BVt*V05fv4MiNj@4=4l; z2p}L(1ccuSC~w|V2=cRle-%UkDkvljiinDdZ*HiO1Oy;ZsDL0;NJvm{b9db4Iv|J; zLT=Z!6qdq!gJ`0(ULvJPMAfS5iHzG23xhpHx+p5Pb(^f5{0=pBjh&kM28Ou3M#k3r zZEWrA9UKoGK62Fk*l~~3XME23`uPWhhJ~Mxh>VI(O1_kmdihEkH7h$O_xg>zn|J;! zzFSgy?|#|iYFbTgU427idq?NfXI2JMu zEV5gh*cqyRgEWJps6bH(a9Py*mZYjjNiNlCV&tU7FdhqJx(AS}$`~JR+PuCSy{^4@ z#~($mht|=7(0F4m< z&6X7>u>Y(mA6_Shp zZ0j--GYAfi;B5fu&BRjQ$j92x9}s-jdd3H9pA>W*Fk39QQy{jQLi-(q|LQW?65phAD5IY-a2(QtZC=rLea#8d)j`B}?pj&IkN1AWU;F zdEc3wqWvDtoX;RG?{8^kq0KefULuhkJj}DA8uRA;lvVUS)Le$7}dcc#*bBk>4 z!hOf4I(#2K9CJ&<16MBwb##)-BDV!^gf3VpJ4eDhUn`}yx1fekj;c_ZpWkKR2@(C0 z$Ye4!d}jHnM=Q5r_5{wY~ix_5H@ZjSu`SN{GC9{?kd`O8aGdzTO% z+b5+Bt%{%f_h~5P;b|b*!%ocPud7&m~SQBEvV3B`C zj(u-Z#!S8rso6JawetPAE3IWYzKV!D+S zGC*zUiI%LS<8lW5!L%8o;$Bkc;=3^=4L96p(0H~ZK7bj6o) zpXbiIW<|L@LCC?1=X9p?C4etuGreD`b*g z)RkR?SzTAc;i3zf0gRwT-^*Xi^(srtC?5i2o|#L<+P&MGj2qZOFCnSaIv2GRQwbk$ z`_=%V`REbMsEOUZHx3~j;h0q7u2o__yiT^f*GS)0U~V*h*8<&aY2U4V_bcYDb8^)+ zJ3iQ0T2r)X6E(q3t_`o{qjuYi3C#N`I+41laaF_h z&kGJ6+;236PlMC1IhuJb74#>_{i2tN>i|d>3k|4?6>F*DtviqAoo@@L6FKrWtHs({YfFj5 zdZh^A7w`*&?;yLsbXNSnYAu~AzN-Wua>pPmA?jqsGvZBP<-!%?ijp+_Mda(} zlLWLyW7aEdIk4DsEituQGpc9vKZ2`bD7WKwO?w?@xm;GO%U|#shAkk=t-d%SC@SiC zV)uG4F$6AxigCo<-xWUaF3oXTS&vL`$_$MEd9>!Gsn7&mh|xz2CF_H(vNN@&A8Fia zSHn4YPFs(OvIpQ39O-ndmc<9sXwyfRMow4;>qJ~mAemNAg)6AuHt! sjY6TLnom;kFTy^)qub!!*Kw9XurnXGelzDXNh?2l???arGa!HBZy1+wBLDyZ literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/transforms.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/transforms.jpg new file mode 100644 index 0000000000000000000000000000000000000000..effc04cef8b5069d990044d9e79a26ebc142930a GIT binary patch literal 3086 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 MtPc4PMx0Ll9f0Ja*#H0l literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/watershed.jpg b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/images/watershed.jpg new file mode 100644 index 0000000000000000000000000000000000000000..719605d8851a67b6122a795fba1f519f5f1aa602 GIT binary patch literal 5617 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 a79Colt&wO!HLGEDM(Tg|F#p8$)PDfxUEYZR literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/py_table_of_contents_imgproc.rst b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/py_table_of_contents_imgproc.rst new file mode 100644 index 000000000..90a1ad9af --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/py_table_of_contents_imgproc.rst @@ -0,0 +1,256 @@ +.. _PY_Table-Of-Content-ImgProc: + +Image Processing in OpenCV +----------------------------------------------------------- + +* :ref:`Converting_colorspaces` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |imgproc_1| Learn to change images between different color spaces. + + Plus learn to track a colored object in a video. + =========== =================================================================== + + .. |imgproc_1| image:: images/colorspace.jpg + :height: 90pt + :width: 90pt + +* :ref:`Geometric_Transformations` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + ============ =================================================================== + |imgproc_gt| Learn to apply different geometric transformations to images like rotation, translation etc. + + ============ =================================================================== + + .. |imgproc_gt| image:: images/geometric.jpg + :height: 90pt + :width: 90pt + +* :ref:`Thresholding` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |imgproc_2| Learn to convert images to binary images using global thresholding, + Adaptive thresholding, Otsu's binarization etc + + =========== =================================================================== + + .. |imgproc_2| image:: images/thresh.jpg + :height: 90pt + :width: 90pt + +* :ref:`Filtering` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |imgproc_4| Learn to blur the images, filter the images with custom kernels etc. + + =========== =================================================================== + + .. |imgproc_4| image:: images/blurring.jpg + :height: 90pt + :width: 90pt + +* :ref:`Morphological_Ops` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + ============ =================================================================== + |imgproc_12| Learn about morphological transformations like Erosion, Dilation, Opening, Closing etc + + ============ =================================================================== + + .. |imgproc_12| image:: images/morphology.jpg + :height: 90pt + :width: 90pt + +* :ref:`Gradients` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |imgproc_5| Learn to find image gradients, edges etc. + + =========== =================================================================== + + .. |imgproc_5| image:: images/gradient.jpg + :height: 90pt + :width: 90pt + +* :ref:`Canny` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |imgproc_8| Learn to find edges with Canny Edge Detection + + =========== =================================================================== + + .. |imgproc_8| image:: images/canny.jpg + :height: 90pt + :width: 90pt + +* :ref:`PY_Pyramids` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + ============ =================================================================== + |imgproc_14| Learn about image pyramids and how to use them for image blending + + ============ =================================================================== + + .. |imgproc_14| image:: images/pyramid.png + :height: 90pt + :width: 90pt + +* :ref:`Table-Of-Content-Contours` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |imgproc_3| All about Contours in OpenCV + + =========== =================================================================== + + .. |imgproc_3| image:: images/contours.jpg + :height: 90pt + :width: 90pt + +* :ref:`Table-Of-Content-Histograms` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |imgproc_6| All about histograms in OpenCV + + =========== =================================================================== + + .. |imgproc_6| image:: images/histogram.jpg + :height: 90pt + :width: 90pt + +* :ref:`Table-Of-Content-Transforms` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |imgproc_7| Meet different Image Transforms in OpenCV like Fourier Transform, Cosine Transform etc. + + =========== =================================================================== + + .. |imgproc_7| image:: images/transforms.jpg + :height: 90pt + :width: 90pt + +* :ref:`PY_Template_Matching` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |imgproc_9| Learn to search for an object in an image using Template Matching + + =========== =================================================================== + + .. |imgproc_9| image:: images/template.jpg + :height: 90pt + :width: 90pt + +* :ref:`PY_Hough_Lines` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + ============ =================================================================== + |imgproc_10| Learn to detect lines in an image + + ============ =================================================================== + + .. |imgproc_10| image:: images/houghlines.jpg + :height: 90pt + :width: 90pt + +* :ref:`Hough_Circles` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + ============ =================================================================== + |imgproc_11| Learn to detect circles in an image + + ============ =================================================================== + + .. |imgproc_11| image:: images/houghcircles.jpg + :height: 90pt + :width: 90pt + +* :ref:`Watershed` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + ============ =================================================================== + |imgproc_13| Learn to segment images with watershed segmentation + + ============ =================================================================== + + .. |imgproc_13| image:: images/watershed.jpg + :height: 90pt + :width: 90pt + +* :ref:`grabcut` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + ============ =================================================================== + |imgproc_15| Learn to extract foreground with GrabCut algorithm + + ============ =================================================================== + + .. |imgproc_15| image:: images/grabcut.jpg + :height: 90pt + :width: 90pt + + +.. raw:: latex + + \pagebreak + +.. We use a custom table of content format and as the table of content only informs Sphinx about the hierarchy of the files, no need to show it. +.. toctree:: + :hidden: + + ../py_colorspaces/py_colorspaces + ../py_thresholding/py_thresholding + ../py_geometric_transformations/py_geometric_transformations + ../py_filtering/py_filtering + ../py_morphological_ops/py_morphological_ops + ../py_gradients/py_gradients + ../py_canny/py_canny + ../py_pyramids/py_pyramids + ../py_contours/py_table_of_contents_contours/py_table_of_contents_contours + ../py_histograms/py_table_of_contents_histograms/py_table_of_contents_histograms + ../py_transforms/py_table_of_contents_transforms/py_table_of_contents_transforms + ../py_template_matching/py_template_matching + ../py_houghlines/py_houghlines + ../py_houghcircles/py_houghcircles + ../py_watershed/py_watershed + ../py_grabcut/py_grabcut diff --git a/doc/py_tutorials/py_imgproc/py_template_matching/images/messi_face.jpg b/doc/py_tutorials/py_imgproc/py_template_matching/images/messi_face.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7ecb78f9c750864eda140884808a34ff2f33d01f GIT binary patch literal 1687 zcmbW!c{J2(7zgm*_|2HX6hCIk#K@ARv>KYMk*!3REDfnF5tD7~6NRL5lZ#La8KgpP zjV&qrG7)8Lp%|1T%U}#`?o{{Od(Qpq-ur#e`~34h?|Yulc~|>aM*xZaru$3*7z_Yl zf(5J&0($`j2#3Q#grFc02w@}|g%m_wOiTm~iAzdC;t(W-lfg@22v`VOC%=v$D=Q}_ zCxur~QXneH5ao#9AAt$3B88D_QK+><41^*6=d9KO5DFjxsvt}O5Q1PJ1Y2zcR;aQeB}^Kln0UW!jnxtf}me(ib&BR4PqcEO#y_Z~7!%gQS%A63;i zG&VK2w6dOcvAcVE`}$uEa7M?*-@co8Kly<>zp%(#;xDg!`tE`O;7^vI{)GL*1qob2 zf^UH%zq?>Up@I!UaD@C0VM#-4q)UL5!p>+E#waQ0L7j-AhRqz-mG)8;r$pjxR=81^e4I0H8sb;PXHTFaTDBspl{WOAg7ZtX9+AEn~w|_GgB-bdzrc{?56U zm0O`#)3M{1BSkQl`*Dr>l;?Ec%)H424!#Cwy;7mYHS}43B6FOzKGkq$-w0Sgk#C&G zu$6EBcm-+1o-W}*YuM&c1J3=(Rlt)h8-^XCL=d>b1&pna@|vA2!;D#)t@CY($2EAY zW@@i4jAPzslC^$H^*pbO1Ql5$<_!@RS{i9}aP-2|uRifxKJgo1ctX#5FW<8-l9NCgV1O{%_6v8|U@J3$U)v2M_j;uvAM~ALtpg)G4I06OEE4 zt0?L*dH2s5_LVMHS<^4JvA5Rb+^6(RyqL{5G_p*ZJc}=mFjxxb$%@X1QBa3xa*s4e z#_j1W4$Y`&!k??}9eAFf-#+)I@`{Xci%OQ&3v-Z|`fK2=Wyy|LywiG{x`%YmOuOrQ zP#&x5icdP5#rhul2D#9B$9zhgGG*3c=EL-}yNb^S4JSJ>qq&*)bH83cQRJOY>(m^2 zC?SpZzI%SKOhm`*js8gdreg{8#XkDeR75pZUH(L}ZLLg1)bXYF;XK`meC$gr##>UH zNqplrFGNtsF{76q2_uo(Vwc(rLkiVx%0>3LC8}k6bh0&5PDT4E#Y~3meA@NwjJ@k*yo^t=7x)4RJq8fF#KS{%Dw8fafv=coZXJ+PNqx`y5{x~<&nsC*o2Np?!zrT#Ka z#xp7Fi(JQJXPriE+?GB{Z|Pz`gW?OJ1EMdx*t)0b2D8A*(ImchS<7tXYfry1&;DT;f-c7|2@?>&Hx~a3L zy`O^3J$-hw-f|v0Xfr%Rq~Ah4mY2j2VZ`$vNF+YIQDGXsto)5>8D7%Puenf;bE_>+ vu2wev*5k0Dm2+@b3yRuP2bLVIR3urOoN*tdrG939^tQd}WbNbKx%%o48L8qk literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_template_matching/images/res_mario.jpg b/doc/py_tutorials/py_imgproc/py_template_matching/images/res_mario.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6da640f39015818fa6cf3c95719b0e80d31b4532 GIT binary patch literal 35859 zcmeFZXIxX=o;Dmr1XM(NCn_LH6{S}jO$4Nu08tU?y@Vb`0qISO^eQz(O6Wy;liqvp zHPjG7c((U_&Y64W_s)6dJ@euDFthosuy=M=vi_@F>))<@F?KNry7@v*Q4T~v00I#J zf1ry=&@&Jb;pNMh35kFgA|j$I#MeoPfrI?oHPY)8

Y1vTsc@8jYph=K&PN6<(}a0hgW zf`E{M;G!7>2HHtP@W%oA+d*)N@G{U!64I;JfDfQD3n zdoC*{ub}usLsLszM^{hZ_?^jnQ!{f5M<-_&n5&!nr_a8A{$BzDBcr}X$Hc~ci%-wU z%=(_4lbcsuQi>`ouc)kQY-(<4ZENr792guL9vK}QpO{}*Tv}dPU0dHk?;ji<9iL!M zvA^Xa01^Hv7V!F~VE;ib3P7$)z_45<{w){5B^Xc$DJ~P;7PvzBM2+~3J=L9uA4#a6 zMx+%rkg`2e-=lf!(0`SdU2vWQ{ads@B>S%k=JPK}_7B1SO|A*hbwUDQ@CYeDG9XN6 z;JwsK{|^fJyYr|TrTN{fuE>^nWWYe<%1>97Bk3kLak=vCI<{ly*``Onujwu)y9#Zy za-mn7NO2E5A@kGkM;l>SxNkwhq2OTr%)zTcZKZK-vxSdYk4*%uXJEv#F1HesX2m^; zs`k#yg9``stNm4KD+dY@hrBP`UcOq#Mt#3k;YM&ircq7#dh0Esb-HUKWC4ByYA_o_ z_O?qIgS-Hd9OdzUnN$yCa^qh}@cIcsMRgp!E7uI`7S*{uRNn*p;I4-zZ;C_2G(E@U z6Z>kYqYabO?1iJen6IoSC~JRJU2d1HQGIZGjQF|drP{V+PieGpVbukwWfLLNj0OAh z3Q0g(1`2pvM?)i`(xBB*Sv7r|dPXq!v%+c(wyE9avB@L~W}@exbGrCn99fzWtcxJ0@F2nY(G5Kj<)GZcUQV-lSmNRL|e4s`5-_ z#ggT0B_h*ovYX z-{R}kdaJTtX;QVJ_5PiWot{l-O3JUjD((&5M=fwN0X=2CQsESR0$DD%8@P&upKw@$1)P!l_Y0S&&!tcTDV@U)21h zr79t&a9U(@;%mowu2V!e&FSC_{m!ehSw0bykP!`EZHI?(6BTt}bWDWl-tjdVYMiRS z3OW*Fv@xqbvV~GOVp==d2<#(DzF+U%MZ371=^L#$XG*+;xH7Y{t5@pNT@W*$rNK}e zPoFv^#x(Jk?OK~e5BW2rN%V9LDg5lY(I%d6m}97hJ7)s2mC&dk67magrEMoC*SA%a z6QTRYXNf%a&IbuN{f7J9e1xZb-xe@azJ0IQ^Yu%3lc&63DK9=LE56{C?Z_DPiSfhQ zs@?cd;eZ*Ad+7V#Xp;`mJT=EN1Ul&5tm}R+T6=B&O}|Ao~SZTPZXph(S9<%|A584Y^ zf~mS2z@i3AAG~GyQ|ZKOvnq#f4L*;$b6)7MAo@_gr-detU?`k)G0W@GVlS=hTljU% z-Pr|^03kA?-si)2l@P3L&3&#PQ3g--Y?mVRuJXq}_kJ0i-Q_a=!=Ih7wja;oDLL%P zl-)5;H(0}*(GSR01Wtreuebj1@wlze% zZm7OL9D-U6OdZV%lq_$zd3{RUTkG>ifvj(pbDdYGZH98h(=csQdq$unRx@G#@HnEl zwk$$WgwV`|!mo^{|e6^kkt#KQSi2(QYdTBU!}Nce1LY=GB; zidT~{9_>9{m5;feHEx|Sp_KTu=4z(l6BaGlXR+r)IC;z+2XtUT!_qtpI$>naC%-1FdTEp-nkT}(g{ z5HO7^Q4Lk@Yy(=`kX(1P)QiQL#bG?dU(+oT`y3WIbAO+m!umkCM7YtwujdB8U(L&r z3lK`UJWm&s|Fr+`^5DeG{supt{;7CEkeG3K1#Fr=Sv%_b?0tc1lcJ#maoXDNP)|6< zt)L@k?LNZ%!DM|93Nm?i+gdXJ?r4MwZ2x=s^Ns`gSe~q}G3rg}7&)F&ehSR2-f$h8 zd6~<#La*Xc*}fXpY<)w^8wSM;{MYjnUPm%FbDXt=67ta#q};$M+goP464>C}zCSxA z^H7g%3*rnwG}OtPy^u`p!Y5yU^OgEQj=-o!=NIErOz|dcV4R2+>B#n&#wElzbm~SE z{X$)2zb76MG50IE6*CiO&QX%2;*L(6Zw{z!6B{{xt#2+R5=1rKpcena8?3Gmtr(1U#a1+OM z-F{tG(w>L*71f%D6_+R6b+sr)$kA}HY7e-0@rh+--)ot^JA5`ihK}c6uTG)GSnOPY zbcZ~N^37+!m;mN@>*?cc-YsF5iJ@_5)~>s-8?d0^ct*_LWtPd{41rVEws@_B9FfJ5S5Y z%97|tUqXe3Coq!Ks8GExAdg58(giaoc&!^ckGKE@2pI~W$QSPoC&wZ<{hXDhE#uxR za+)eEgmea9fhO4W*e9YNvwo3$Hb0Ab>G|lrq;;lcKfe!3$q6l&RoHY~y>CBja#jQMn&)}GgB6H|!I3=?FzVrUti)S7f%A#ly%a|FX}SfWUGQng#5 z!a@(`G!#a-ZyZvA=~RwmCvf~zRnDFNqo@W&X9UFh0(U=elAV} zO?2YJ>s$6wXk=4U_m`RXE0%upX*sX0{Exn`g$sp4r2)ViFO^}j(4H+WL(MOtL#9Mb zp*|#n=-lFVD9+x4j%8lW-x@HWwuSaDrVdsg+46nFbr}>!S0}nNokLr`%7OzM7oACxRg!6mZ!Jcl89^c0; zTqrx8QfON86p@feWP5E^^Cl&_#;-PteGNDLh{|X{NAT-7O$;R05KYCPyuv2z2Wiq^@dUQhnq|`RTCwlglu?7z$0*d}_GG zID6@4)9WVw?$UkxkGp8xGmLY7*WP#RWV5?-NZGesiwKDB^!grzOq%ef?la#CM?yb} zFRKns_797ggv%qm`?1|I+4FG1$+90+p(U0yyOXl5l{d;gC(SA+?u^io zOes#nC2}+VdFza`K#NVBoBhX#v!=FR9<0&ZBhmA`?r=j@--c%~wNku!>!@wy&+^Se z|0Fe8ngy^EwVEu5X46#b%)r{1KfsB8K{wqF57mftxd0Vz2nU~g=tSxul61E1QNeW_ zeZ~QA1DZ~~R1_!i)j1Qu&l_Us&~QUs|H0{&?bdWzz0#x>vg!6J(B5Bn(ZU~ZqAIQk z?_;8th-EgbJe$3#pX7TLDikgQx2}gv=HwV}h|o;qt1Di~kJb|ZE0x@tCw4IxpyO%s zM5nDfCeP~Z^PXA{3b>8TSbdqy{H?ya;bW;;ll{{k5vvOjBylw~#aBrfajeKu9n?H= zc|et2VS{Z=ga~NF5B8L7i=Z=me9L*!1&H*D?=iAy=ZrtL$G+MWJGCn5gyYgf*%mAE zP8r?pyBq0tM_vv5q=IkvX!;}jxrF-4AbhjFStAQk=~;H5@5#hBCuCdnD}XMblvH-O ziGitWK{A6G=+yOSLOhXjkOu97lz^masvtRa!9W~-eX5=xyY+5Y^a2E{6}6Z({zl19 zWkwm4@Apt7w%JWi>;hys$VH61nn3%Vx7q!zYszCY*86%{0_TI3-q545jv0IWuDj<9 zJS_Vp;25@!ao^l?+8(mB;O0@yEDt!ODOYm+nb37M^`i~=8EaxZk-B2ud70v!gl6nz zOIy1TCXx%#$ZKxXbJ)vBnX4fvni$RjNHg~8WLC{<<>m7oUE_0?hr*vOK$mjahrK7+ zBa|1sE(w)a$c21{Z$6+Y!B>A*1pD&Y%Cud8%D{K4-L}_}4Ws3cgS5{eZT2Dor6fi( z=9lh=?GjWH0J8Lj%8#To4x)-TR-461Dk0h}<*~h@*7chui63OLlxPvh<)I6+WVLALzKc9ZZ?Q!xaqpZL6jY<byweb`ZE$Dd0Oa~D(N^ML zGoR|+ms=$UPcJ|z2~t*(!p%k_{fCEx^APuq*Zs0I%PG3Q*Vymk-nIqoGaOIgn?2BF zsO%bapX~|I7h(9XjHiRg+83b6)cT`U{(WTnA^#~wDll1q&U``Ut=tOV7q|fZlsP_F zJpiACojK$Ezqp=h9Ml*VuB*HHKldT!sFdRe_p%xkHhT7nyvE*0;!Z--W*wiissD&= z)@PIZaRtgHDVS+ehTK&ZdnL|_>i=)nKhwSn-O@Zd;37%y`8ssmhx*9>?P0L?UF1l7y*a5+3_0yo;u}?j^TST|Wu~Q5@~Qx&T?%1Mma? z6MlHkW4l&Gr%TRl9FxVpX#^R|Cz2&{J(W|Ru|Iqf=qH_FZ#cVI{ec8~k^?WB-GWZa z?1h^_EzW4YyOs|UZN~BCV!bRfS5@?F&tX#*F=fm9lillkR%cPbh7!G0^>-NS{0(Eg ze}geP?K9@~A3)>28X5>h)YP$cQvDVs75*~^*h{!OoPWboX0k%WSNT4htB`ZpYegBA zAwI;hSi~Cuo9|Us7_+%~%75hqVB6&J1?Z#3$|(Hz%HDX9?TQmQbx}G?5{EId{>CDU z-&n*Rs%`!f?zF=UFKksg2s`l@5Kb*_xEndc*{3~i-A7te2g&&pdC*y5zp+o~H}+A= za|?c#se;{*88zl~Ydfo5XL_agI!e)&YK_~bZ0+(4ly~S)+`$agtB&qr0+&XP4{B>p zFe3Y`*z!sC$oniT_z$Rk_|KG6E-dl6=LP5)RM#B3Plg7cdmF&lu0dn% z+s>BYjrE7$UG-AX8EY3Hja0yD3^S{r0(S=T!WSp_Pl)%^>&0TWx~)7B(um^@4peOO z#3gyEmOJfiXG;&P;DuY7rkfK*HI_MWbBxP2$EaXHNX>?E;Piw2MMAa{|FF1YDem`P zKrbs<@&}Y&4&@A#4VOP@e?11Q+_9YAQIxUk=qvo--u8r2p*a}J}krkbp)|1=S`+T;IfVJ$l2hIhPz zVh>_Zb^6`ua9{f1qsAAYtSfa+=h5{`IsE5tUAX+U+H3gdW-^qe>T{odBY#!Wc1&w?>+1jdqyMW-3c_%WomD|aX5Y3+O}*0 z;Z5GS8UyS;t6_&P|A5wa3BHuS20l7CC-Zuf1#cH=h98~UUw~41JyZ5L@h|E= zUVxx7eWN3cI=D}s^1wwb7<*}SdCDGt3f@DW-%qAB#hGDchSvTuZ-SthDmF6FxW5*ZGWEKX;b2q876p9GECfFq*(!^R8NR8>Ut>x_$EGZ<_jVZTY~A zUC2|{2P$VNETFanLfoXDvgv}BAd~%!rWbM$3;f|hG-2ANA>DtkJ{0vj3*Vv&Ev`RI zDwhOLJTYTv!86H*I%@ie37ax(jn z3s7;PK4ya6B|}}?cIc!ynW6iUyFFtTm0b;k))bY3gUERcIfKPcZK;vrv?&2Kr84qu` z0ENSwr5E_I#228Bd7%8W-_nFzzL81UgD-*6-L?WvL>0Oq*V2n8{ae5uHsya&-p!UxCORHn<>iO!v8Pt;}sfYTt zS&m`pf!sBxH~;4R`@;cPj-djSJ}9t@B2(5ZH_5p1PwLo!i>|P90!!d~KFaKC9g<^D z@qTqb2I`lX7G$uviVIL5Z9U&&*h%{Z$QQo;a<4>YQNACa{lxMD#M%$9kcp<&zW}wB zLU+iQWxXAF$K%IN_5XEr)&BK+H;oyAQkju5t5OHu3fm2DD8g44sihz-TG54R=h^d< zrLhJBcZCmfL%E%rx`MBV&9F)vj~ya6xdv)DkgA)xi?7qVjFMx9ohFV)=O9O;&w6sw z1JUGFSMQ~N_@iLCf682yhdN|u7gD)5_WK?VvG{IpxF&Z+)jg)KCfH80l|bpH%ml;FBcwgL ztr1T0Y@WNU->I#%4i!vY8M!b2a6Zt+S?rZk=+ofWiN+r!T?}nH$pc-m=vj`W!tBf2 z%X2Zh(+)a`%-f=?19j0D|D1_+Z;~OQYu_jk-~DeYGJk1&{qCWkireLz#JOxm-L`Q< z`OE{KZ*5;Wt_#ylL1Z9fR>_Dx)3X%$XB?24rx2sq=-A|G)kHj*>-*joX+b4J<(Ki! zSv9e-_B_6fnlC{gK2CpgY(Is){uH={7spBWdCFuw$u|=wR3*J1xBxEg;EE*CD6Lam zj%ASvn)o4OYWQ?waN*kclxWD21ZhF)``39K)&;4N9$OOvk-9l;LTmM-j>HJmV zsH-b0%xQT$^$1LC6NrDP*r(Lgq2lu)XKyrYrGstcOv zRF8qUoF0mie@MREhkKT7!Pxu7N-pElFJ5Z|egF-czaA+;-Efvlw93HAmd3o>+Dod7 z(P&<${pu&d6nE0Xq+l5P!Hsh~wsKW^crB%P`%r|Hb?8v{iN_j0*?5?P4_c8lh&!rh zq;>akQ?6*C>T%Q%!UhMmHnqJKv3+}z`#zDQuh9ee7-w>`+J}67z0f<4+&R+gX30v| zoo12kuFLfOP5ZnM*uj9#QHj#viVKvijs~NB@^iv-VkFL1i1#T?#hF4)#N|8cGcWQA z2|#xtVz;7v8?F0-7!QrFa{;VUxdR^mIIUjS|)Uk`bj=1xzt^b4kGE-`Pv%0y4z364Zqgw~^A zrPbSL^X1~f)gise&z1urLM9!^lqS>F>e1!Cp8#-7iTV5`l1;ArpK2oF|M~9IQPGQ+ zlfe+RA{A4i8vF^@L z-E5|XHYFzLx!DM)Ygyj!YjD}{`8uG}J{zgx|L@hWw`fp04@|B%fv-#0xH`>S^t+Um zPg-l&6VE$#nWYCFgw^~VBZMUZCoY>x3ZN9i(~w>m=ecc>SN(;~%C56ULfcz-`Pf|L zo8`V70@u01ui17qwEtvXsJYev-xplJ03D5D8L^i099!bCzN{l-VULt+Dt$H`bM_A$ zOmE0J{>W{$A7Xv*2+G?`nP|$YW3n^7oiz)s9yQ+H&l|{!=x8WC&qP>moU&Qh7iPy= zxO>g`dMtQJ?PkY8^643}O$Bg;4@g(@5_SU=&#Wn+lvAN`gA6^YeDR)%rn*E zy$lOHSOja;_wdpEVa{knk{Rh!$!%h`QRayFRUCPt?wExU^N7uOdTFeNona?3hJ!No zJ^LKUfYR|NF#=Z4xO->7lTZk?x4%*$&_eAoR6-NnmS~#B$yP@&XH30z0Jpfu|7m70 zV|Z4jEVNE8Q7fcbqj7$jp+k8v!$Sm@e-IN^`3oc8RJ4hI5Cb{20jm_3JhpyY6G<*? z{_Z~OLgF_4TZLOo{Av-eTz8wo*Nk`u_?+^C+Dp$+cE2H5$W{uIm$1_)G}Q$J@6Kw4k7z_1 zWzPWh>0n{u>nd$$R^1rc=yz;lfOHQyE#J z`883)&M9=tW-XDT#=(i7de)hWWM&9A<0ttYW6M_8@8N3K_OXW0QOE8WzWiRV_=IJ9 zq%+KPN3%YvWVzgO3|)0Ez3wM&4G2Ag{$956mjPu+r%z^c6<8ZhF91Es_R9rmbARyy z^jQB?W=<6s?L~;M0~T9>AoBDICJbNCCv!-I?5bEi-TZrY^R~3tpqoYpA#$X4oVX?YJPI`D0x?bX3YS z`}VI#0WUfaa`n$_`g<@^12R;)kBajGLb&#iJt}SZpLMe-G#J{E ziY+b|ATc`7BYI%s+2T9H{&HU9slw;0ALz8{ux|YgE3MdcT1H69!^h8~6&3riR)JfB zWBOQJimk~-+{AY}k#edOrd0NHEAyj|=ucKuETHyZfaHF=Sua3mm=v5c;Ar!8z5uC( z;bJa8TRH#kDnCZ(eoG~fQuXY#X|)b<5JH7I?_Gqw?~qQJUo6Z^B8jEfZ_7rIUeGjV z3DP(j{fTeiZNolv74@F;gOjuK8%KD!vf1^Fu);lk#WjXmUR*q3XCDzU4}}5MctUd-OdXpEh5u)lm#OA><@B-F9Xa z8bAsgIuW6rQkLX@F`_d5a-Nx`_-wpDwR$o-UL{o86)XxK9=YYUiE6u)19X#b-DrVS2~e1N_FK>4_(Qc)L)t^Lew zIy73YB+#T4|Cz%DmvRb@Tf~TnckS&rFWhrzl&CYS=lz->ws9}LS~c$PTfGGQKec@7 zRR5XHw7(;I0rCV!0{^x5+9SN67kI(%qiUD7! z!h&n2-etI_A6eMZbRZDg(iRDECf^2-IkRddLZCe9r9I?3tHJAc-h1c+*0wCG-hVk_ zhc8BOH|ihatCEGUGNablt#y=<*4{+*hE9?jf%lL%&r;KY^bn*mhI~$n(5TP$sF%Y0 z0yH5I&|O<2V-b0)`lccqOC0FGS zF%N!HMN%VW)Pkb|(FdK;_vdX%AzCg;1<2X7>DX4j{1u)4aeeG$xyCQ=M;MjCMk8Ji zDM{;+2-tJKr^|8#OA%{2qlw2Y?y(=dsa>^qe@<9#R6!?DhEK=&q=)!9)EJ_bn$vU$ z2_8>}t0=b02{Z!H&#dohiy1Wer+(AI)t5+msO>-Dd%QopkCuB14D%wTS=QW3nJ31_ z8mO15Oju`xL&8I*b?0(+NO~RxF86T1ee>+b+(Z-#>oHYc-aV^QO%cPT?rYBH+|oR)nNt4FgE)rkX;H~fE)#4hY&jb0g}f;0zW4M-pRMKE zks@|N{M5$r6|9p>GxB_u>qs>kweF_pwmo#(J2&cQh0|Dkjv5;3$kvB+xWOpf)v})d zBq3oLkChCIbs-Tg>|I1QZ4)9gE?NnAc zt@h~;kISnJXI-0md8qm_8sYO9ovgzN{mBu)FUa>D6HUL2{;E^^3w7G21b}3@ZOXH7 z4C$OQd9%1nS^>td+2R3Dwz4_AE*=#K z_&3a@UX1Lv9FMr{ld=x56c>l^`2aq}q$?^0gg+|5fSC6T0} z?8dD81+LyowoLW@yi3ZvF5ypm+RSF;rrQ|sx09tT*Hiur7F2GM@vi&JE>tTYtBL!Z)(v*Q zp!mzz8KXbf-RWl(`ta~nZ9a>Q7X^2B>-^YvR2cN%tB;)cp?(2+n~fZYVpS%SSw!_q z4H1ZAAj6;mW3WE~sCbLJf2eYGA2IOx3P2OMDLL^u_TiYmE+l(H&RW*vPUUYJx!(vZN8+6s><-?BkOOw*^(IAV649yE2HT%glQ z32yjkJzHa2^lkRtYt%ab{`YuX|TR&Vu3r==9EKFE-a7?_2ltxQ6 z!6dDB<0t-0R%<>^qrOa9u)oyVZdAA|QwjAE(wlTIo3>m0`evbXIVMOf#c`Mm1 zyuWe{(UZ~D-H|B9(9@XB(DuspXSdt8s6=DMmWd5I5A(wEgTc`i*lYWW0J{^(?^Cr1 zh{a4z(O|#CWYO|OatbWX2$Q1fvA#mP(R#&v{1==%_>$X3HtX1~k>3UAhEs(kyVYux zns_st%?9o8k_zNiMcR*23X5`n-vZlN zj_n8~aMzP`E$A+34cZjUm@S)Ag*_B9^e1b&uTkOBurxO^)@#Y!ND+uyDl8l6?COQA z8HcuM8wh>Q*--j67*h@_mpDPrOsmrEt%Si5cR!_dUM5k3xD zHy#QkzOO8!Y{^He0PPF3Pb`%xSF`^pOt;bx35W30bW zLYWzYV`z%bA%8jGc@9H>D2VQI;vT`K;cjbndua-&+uBpIvhcdSEb9?Zi?P5e!4Y>7j%NaY4(iD4J?iZk7 zjujiYuO1Oi~&i1W}a>LF#(}+ipQaczNm~OdqQ_69HgLIA; zTl8;)R4`R&%ZGDcq9f%bCPwxU4}o8-Hi&g1bh}K*=%UNZF$KtdDbHOxZDzHnHxqP_ z)JHBe;x6U9({*ogl6!thIp(7ig*CQF?_rq8c%;+|Gwm7rxZ90s3=Z3Ukq?NUg}W(h zC{^y^YZs&hXQq^?)$%8IlQIQ@6-bCGH|jfU!SlRJ;wk<%1=b3W)<<<77;=k;@hIKt zET%}@YW&gjDBSJ_Y2mdNY*u0Z!Y=h6#;o>32XdKOn`R)|L0)L_qtGE6nvwzK)#1+? zK8HQ{`F0bIpw4ZzjXs0qSIfA-j{Y!ax2&XD*3IWhwr!S%-VKjTKAh#tmwDv&R-51< z-D_SRo@g2U0y#3UTo28*DZp0%s->dR%FIhfLj^N-6_FM73q{+e=zpmxD7M57o4GYbdge zjCx_bEo*L>=Jec!1e}tdC;+P(>qp?LD@}O3%ms)_9>;xdiubmX*##UxXrUE-E`tk@ z{^%f{^n}kjiOAm#T#+=eI1wP}0#qq@Wg5)-=a(r)-Q{DC|@;RukSI}cr( zJve}0fZ#xAE1&?3(ZTlOaAWY0E7c5n;T}_^8W)ciy_QA=XXuNVLsyqJ-+FxOml%%KCP(Gr+Uk zJVN~M8ZHQAEBr;O=hUy`L%HGnnA=~HJYQyTRkBQ}E6tAc#x?=`jc4--WHu`jL6tUY z8Ok4?cV2mvJck_;=l|?9&8-%So$)A-eDIi3JbKBvI81*TaCvRY92~p>WCP-l0e~%z zFS!882!l@mUpgi}n&h5`P{4@?1W#Ik7R_C#tK^BOid9WWfgn;EohHJ3O7l0@k#{R< z_3k=s(F}o9v%7QzRd4973y<1Cl6Kq(9{D+PLEZV{4>eyvHR?ar%01u$y51xaza3meEsy*|0bLKTe67<_$QoTjq&&sywEjB72hAM zV!b_orWrvr=A%fz)xdc@)$vo0eFKsinO6T^q8%y8lCxH}=(R=X@UnmR)k}xwB0o@K zc$OPB_+6q-Sh8lW>NVFF6ZxgvCf?^aw(10&p%3dqJ4Z*RtCEe;DUB}4lxWNG^+oH% zpepudHt@D@iuT z;JssXsnutjjW!~AJ30GA9X@*q)m3`fm7yf$;LLJuoekD`EVxMhE4SlDtWYw3R|p^< ze%SO*Na0tWKZUe*%;&pl{7OFJO>?84a|^x{a|>Sj=;Nl*;$qlm{7wHx9qaV91hw?W4syB?&_n(#fs{o}#KHq^Q`0eQ%Z* zH=0}xHGreYv7md%22s9oD^iT&^UrpZ>xug$x5(AyjpH|dS!jitKfUSl$pb2%r#jL< z+T|GksZLEjGj>-@C(jdsR06b7o9rI=m6}JU3n`2oh2Os`ix12wbydVX4dJ>Adi;3j zSLKpt^^YelE^roau$eTtKXtg2i6Hy)*A{#7iFeV8m+wzN+4s9bQ(Crl!6k)h*5+uU ztsQ1LY|`hESC1ZOQI?IoQj|Kjrtjd$)nPFSk>kY8)cetFe!YDzGOcA4ixae4Qr zF;3Cm8K{1@7UKLzZu!oBE&um{k(n}`Q)iLpoHqX8^x7R0WREx$$6M`*W%mE6ddbZD z_8^MPv{{%PbL2y(=Unp$R^mBpd{RO9>7tdHiet9f} zWb$?Wl#JTynmS0aI8+^X!7_!BTe$Pwsy(Fh+iI(P;+pxnCAwqP(ioQdW++jI^GtC= zyWE?mkSy`NeLo;C`GTFQQ?t>1)GmF?(~q(iXT{3$J> z`gENeJD#THsvy`JUu?^oQ$E5!M^rTekEYE-|b(YKK>%89U7k=b|~}sCXjX@-&j=NWdDc@EpzRET2>m( z4xSY7U@sskg+@>o{MI~&o34?Q+vK#TCa|lzIX!(eRm`i*td@=3>(EaVpD8ebn=h6N zSBpxj{G>W1TLPA+@*^LP+1U?*mI6=lw{o?UXt-1cN=9w+u!n=W$IKFp4nN;U%R0Mz z!+ZNyYV_v1Ih&+K2W<{T$xtEF)ejp7A4PXYidiM6`D?V!x{qPtd$Uc9h0(AA*Dz)A z&!Z=Ur7z1Jco$5mYWU{I%WLr!3a3mOPJZflJf4lQI{85s(2`ElzeBH3RG!XlpU zuA{UUdCa2J7-nfD|LyyXL4$MUkegfOBY!rrG0jEM4RU%0q{KsnK1KGuj{F?MnVyMF zxRjLbiqmUNlcr>BwU))WEt1FSR07MfJM3i+<4gW)r8cMD28q{0Gxxo@hqh6Mwk;>LpW}uN z6-74#n3$;sUC1khwqT6i(X*dT&^!)Y>*d0R!NYfy11$+YP@g|a zk4IeqHL)qads0w4a>M3YrPh9Py5{xfM9?)K6<5$v;mM-mlD_JP_hogg2BTL*)5F|j z-WJ6j1Rt_5!G20!f1AV@t!D-=aVrM&H=Q?WY2R}rS-KcY@F1$6+BpIsOLG9Jcz zsf}Blm}v`Z`0)0?8}rrW(VfWz80YyU?cP@-HHzPpLsUj*6w2qIq88|$K^lV zgg^xN#_WF@@Q(VYk#byhsLU)Io(4z}e$)sg`hzv<`W+F>4hG(E|tq?DmrCJU%jY&#ts#cUt7UYx9{}tNf1v@5_Lpqe9$d&v#M8 zAUWTIhcd3Nr(wne^#%Da_F`&f3bR9e{CVBoAzFi$lhBX0qlV<-$aFjyC$iU?yNBl< z_2oZl{uWQ7HC8E8qZVAZ+#}j5Fgn;)M{8&vlgy(iBqe0~b+T)THt~7czAsO4q-*20 zSdZO}$Lt_4iv#^Zr!(1#A>?aWv;ELQYQ7j&9(#T0j z$}=xH;Xc51bFZ7NJyZDDMU*{n6%=Z(E420cz6X!w?ZTu(961{mCs(octWg4y`}nZ; zD3fm2g5ed>n0tvbu|rEq^_x{8zx#P9`k(UJ%0I&C0J;xYAh{LaJ!yGZi_*tEWOcSJ zd)WvOk0`D|J{a5b2S`75#8+qklAnJL@HUnLcYqAZn;nFm|KM%-UiR|n`&TNBrgawr zIracor0=v%rE9*ts|r4~Ia)+_ym%gTW{jsKyS5EAo<4^1Coa159#!_Zu46PyEN0(D zLMi~#gEIU6^U!qZPj6QiSOXi%B?9LR2Og;d^*Kmvy;5G4Ci{Ptqvf}!av0b)8*$u@zgum${5deSUAM_D{ zUhK}dS2A;&V<-U|wn3_9Ea7AHi|+ejJ4s#p08!~r(#N3RZwASozcNUS|HeDXEwXq! zCI6i>;PA@Fh3I$<@U%qiGSGtHq*d_FNp|-t1`BshG4)RIFRUk4nU*U{FK)&vxu!gU zIF$#J*3{Q_T?eQoa((bQE%tci?R0bb)>R{W;nN-tz>%{@w zLR3Lo0shF$vLC=LVKbB2O|s-=aT_54;VblfmKqd|vVypI9{2%VNU?T8tY(qLtflMD zZ`$Lv$?jXS0_Srgw|>)3+Ob2=^j*pf4KV&s=(sJ$%JxrJ$;!`N9K(qZGZK`6-UA{R zTz~Ywp)^^FgCfe&=3QM_bJgYI&O36!@_koY;iE27z!(=2wk0q%JF3L{BGBKoCY0WM zCZ_*+n$QQ^HN;I+mOq5bFBo3ZGofIUV_PFMmf5Vf0hoz81dH7v3u4*IPe(An^0qmC zG!h2C_UvAhI4LwRu9ZnSJuMmOV6&3lwg#&zOVgAWekTJ=eZ8ZPf6IgapX9Vd?aB~I z63uVJ8j7J)>~w=$F0mBcrRwmj%sV!Tb2l7MPsu-;45p#|Vz7mA&Pp<+TpbqdWAAzi z6F)ZGnhU@2K;iNzip8jvo1?b6rW693E_ddk+n|ywyZxm6r`HY9jh&@K^J)#P*m0?I1-)tJdNOhP#D_?gjF3TxkVKoo z8llaiY)eFAUW5VW)ALB0R|51TZ7gCBDX^M4@x?0WZ8WQ2M9aO%2RfX=b5twAM~Bqo zLIUCYGx~j3y=p&3y!4GMw>IhO(J>cr>OR-ZODeZ z`W$9Q05&=zKb{0I+4N6Le%m|lS?3rsDKoMvwwOKt{Na|YSZAg^-~RAAi&gD2ik4Gt zE?*uYgYP#4qk?rx^RpjW=TAavZFY>TUB;d>2yN2?E?24|B9de1BerrhBf>KOJh7|1 zxr&ss{hd|Y)S~G535o|>K5nFx^EaRm{tfi%e*^k7XMk56ME)0EaoQjK@|ztTsAqF0 z(1PBtaME2KcCbOeBhXnw`t&>7{m+SP^lc~6(HTVP{k*X{`FE>F5Z@TNmEm%MBI@)n zo+W#cMA)Bd@Sx(}1aiCKo~0{ZHlrfBB=Ga+Qm6d7ntX1MJ!^b2XCEUe+n?a=56~u~ zY8KCD4nuNyeklIQF@`u@vgME25WrV6Fg?LputjT!kmnaXTSg(wj@B#tA))&l;9$b*jJ4 zT{K_)JV&2Mfi*oVl%5@Yy1m7nh>6ObG+H0A=Swq(*>Ui!OztewugA369QE;)?pnnc zp=o`}0eCO}JG@5|Vs*f1R;?<4Ff4=OvCWKRDd5$)B+2~2+huh{I_VzLr(hsSf5%*6 zqTi6$OX}sGq+9Rn9ugoxGgPZ(U@ zhHc>8h(FTk2ENU|hqs1hoU8bZ;-%6rKz4Ahdq9}tZ=65e3Zz7+XutGdW`!WW{mTk4 zbVMu5Rmmu2RHOBOpIPv~&n)=gXBPZFd1ir`t1Vzkn4iVEp1pK4FqL_*P}j0w!+!yK zzHf`8l7|A1vXR+~Sg!!3pyY#rgdy&odJ#P!H}@Jjjtq_$f+pHe>spagfna45b{LSpj0H>Nle|m$% zub$8xMhhn5$sv%~{5@}x%+uh6+jy$HAj2j$K*xuX}~jMM!^aCHu(FYzV=#=`rFMaTeP^dfbN`Ys3h-*G%ls1nVym1S-Kw< zBYDg926^f>V$_LhWNVro-^1w6V8t~%8h;T?9FG}e%O?#oVWsLO!p?O&PQMnac!Su~ zn&Fr){~r$mzfoKHzb80l?*G5d0n_d<@|5YkvoC6B`=op~^@(&k+ZdfxT=8lCMi*<> z{?96rD!mCw10Q)7Nz^3`SwSraw*Sh%rXKdNg-z<-2^+l7Zza0`=pdVBWes43cufAj z%8AAB6bUPgNM7iE6r}FEBlzhd7S0NYuDGy=2Y$r>Yh@tY3D86U3dWEr;1&4o9~6uu zFoO_0<$&wyOD}4R`biQhv*!3-{WSgyzzFcHcD~%lZ2vX^_NAt8baih20oSuon9$dlsuoqwr%O2ntUgpvgl`0xFdYf3FUY z5F`D3YftWf6V%D6Koh#vDdXR`mzS@Yl)g^wEIS4We*!*LB6)yDEb=#1hZZmve}i{> zK76{hPfSpWXPlefgwnxXB=X1GKOa-V_MM-1x^?h}mFmBRx#J&Uo(lZte+hGn@}PJJ zQ@{w)6t2A2zhpzbe&atf{1@tPDgmN&=^@pX72;}BC%d=rpJZt+_PCzL1Z~|rTU5kJ zga18tB8DQxKZj&R>rGTvHAy&x&_>#BYDu28#jUwR8 z81bXAaeyIE(Qf?b8)Yu|5&#@W(!!rCkG>(}QMCPe*Tz%e_id?5{Hi z-usA6C*|`$%iRPr?;e16@xK>yiVSaBTKY8Xx_7NwqcMLHwXeC>au1JVj%iPn!s#PM zqih|&->n-sd2y;C5s43&7n?iC!BoX_0f4nOeH&kYh?S|o_tP7W&rQB1*=9Bn$AzKO zY>4`NnK{%Jmo5AhvPQ4=veDbG`v})AA9kRZILC!h56Ry+yA02g`lj~v(@@{TUsWZC zU0m+GIeXFy%t(y0;(s(&#&jDl7sq4yPwA*@NDrP{jJ0H*syuwf&X(=7><%2-MJB;O)Wc!Cr3|zaS?AwZqkllw(ed9qyHi}U0}QL!Yp6s>|1TS{Uove zKFjf>psO+;0l_t8**@H?;?t+)lWql>E`27#Fp;x6ys}_f`Gbkd99TB&|G`;Z)AIBE z|9L;Zg)J$K&y_??xEzJ%-717r*=qQ!Nm4H{SBcqkmktaVq1ZD_|! zXZd(hZ2}mvK4@=?`F*gFkUM7o#%T}r+ZrG^Fx-*@KsI)N3*dH9bXs@r-vW4p>-#4l z-g&9Q|0PyK*8eNsb%rXnZ2hC3+8zHl;AQL8mtvsfdVTTXzVGhme~iO=28`YTQ8(f5 zsG9))Z<5(yq&x@#c3b;*sFeE?D&hYQm1$Cc0_zoLwh(M+9i0JioZy6i!k`8qh5suI z-uqAVbT$8grrwSM41|yVg--ALPIcCQ0U(dRSu$P!)Wrncz@Ud%-MTj2u34L~Vz+#Y zf8;7YgOya&DE*DV5&8ls;{&fQKs6`Tvz^g`dCE`b{zS_yYGg~NgewpY{;gp(F7A5= zTs^$3{w0YYbJu=-v!#jH96i4z9|fGiZfn~srqjL;nPbAb$cconP#HIF|Il| z-yno-4d{Xa$Cve$@RHy3A9$GhBfz}R?3+m1f1Q41F6kHs^iPb%E0`rdT_pcdI7F~E zGAW<>Ct(es&(Somv&(}IH+m15r;75Rubhnh5TES`dmkt{{bV_x6&78}1=`5wb{&!$ zI8Pc9ii>i|@w0}cz`%^)@6OYA1B~lY#G%4>h~HoZwsrTA&R3zcKu^}~zX-nANcsB{ zRhg2q->T;U%Mfj_?C$(UP<^I*6>;myLPp-v^;c)Tvn9D)mzCKKo&WHOxeG72#N!Ls2q$O z?IX_zotxyJiJB=fxRi8JHY>B8%wuA#bla~uoF}ml%Pk=ADdFi*CSJq(ufFH2A+?M^rPyVP@EleH!=2piE9a>HL!j6H zF%WG3e*uDd{Z9t^KN;x1iah@tKH>jlp#Q`@{NKtzfA(fpKn98}I3a0+<>Uk;T?C}p zS)d#K0P9f%XEI|hnH!GRsC7Xt-T*yNv$D}Ae81{N*1uWB3}<$rJ-ZUj;$XC#XuTBq z{A=MVPP2@4eK0CQ?i;nLY(m1=v2FF)T z6^}HRefRw^bs9?{BY;|~gb9byGiDNCjm8Rje!kUN z+{0DYP&1zDN!uynnM5k%>o%f37#0@Wc!R@+?+(NtI|#mt(q>mu$v-}Xl3EKkT)XzOC~(gBWuB%URx<6M81Q2j#Cy#Q{NE1peO<32UbAcCN_pJ{;K z-#$9SxHxY?xqM7I+MshmF-v1;9ZZaPzTRs4*?GR04HSbOCXQ$~G{~~Vq|U$4mZP=T zngc`2Tbo?dmfekt=Cf&Yn%A25yucq@aFR^tLHzbG!TC>*VPTf@*L@K#cZE#^I!Nl` z-{N*F&ysZ~1)sj$&m$S>z@&cbD4`SKoiDPi%cu1tFKZ653n!o=(?1p)_z+*|N|t$5!HZNF)(mB>5E=4Phm z@u_9YnB9{ZyO6IG&M&A=0Ob_Z_@*KFi{L1?>5#%iS0vjMf?cu&0jXV zoaV46>rN>++64qEPU6L^65X)99^qeZ=fzvnSU}1Ag6Tzu4BoEN!|N_2Su7RJtMx+b zj4fJR5pL&ia!ZkUR%fv)t1&LDP$341a~Iop=fL^XI^&8<`#&k0i%)4Pw73`tWd%F2fGrUDw+-u;m zDz?;1?MG)WTB%VRNy{O;bF{$)i!Nb$R*z@9o0RgQMZNArz2>s^{&TPD_-{}26314E z3haL-B=RKWz1P#To9F#@=UJSo00ZZ$MPNMb&W_^>UF39_ z$#3?bPCpGtFt9-o*NIDIn2n%T@E()-E-l)V{E}sh?MYPmNSUD8=k&d>{#tF$GM4bP z&>M^BJju~*^P+GMNpR8OqZ+iv-qdiUilEMVR$NDPTKn~N@a?$vtdRP-h~J%Enpm9E z%uloYMo)X%9^}vm2DLc{^2q{+>`uWrtn11}w~@EnsPxQv`Z<5JW?6hz<*vnUpzy&P zgdBCHe`=RzsB$Ibw$*~Jyp@Dpl-D;lBA+CT2|IxpLxjwTewgXus~JY*QZD?}LW2Jf{)IW;`E6?k^q|WkwY5Dufe5j>` ze=-1KL{e9Q$o5z|$s$%aN~joxzvp|T)b&1dC_xrO=7sh)O1(YTLL9G|l^|X`5$oNb zx=-E_xi}Gz^HFe?S-}<43p=hC509ph*SxFCm_Cx*~iM8($^TvO>MSn zUqB^tgzIYqs`eR|1ZMOhgLK?N82S;*#Md6&hG;@{A$0{=Oq0#eTXsg1C)$An?ys@4 zs1y7Zg&YNyea}&4X+ZI!jh4?*ZyNnrMHh^xgMNs0yHL#&p+o9rRBqA6t zv==OXA;|2Rq*Y?MJwA``a$jp^%2pGga6}AVc8*Sx-J$Nbiv`B!Ls)Kyl3GQ{=x1>W zv}9kIhilS8R1o}=mgPY|XRYdw>yE~^CFI)xcM|QW` z)47T1ZI-qV-1SYk`ACj^CR^*N@184MVzmAAus4BFZz^A2BUe^jmP zq4>OGd=hFAU@xY|@qvN6i`3{GXu^@0;b`4I!@uV$5-s zl1#hhvO{q@s)2?sT zf^Kc8|FnKBcoF)#;Rrs}HUPZf23KuS#;;0_OuVnP+8)uL`rkm97h$I*MtGGQq%$gWY9TyYGY%j2 z{68T~Ie&DKI2o=FvBSztwL_KkwKawKmMvOdA8MwU%Ic@_Jg9gCfU`NUAOMY}rVY$v`Ar!t1UO>9KPMm~R`AHUlD zT>6o+Wqqs;$)54i)A~cdwADz|=jWN))5wZfTh`+I3UH31Tqx;{v?Ir^YvtM4U=kI? zd)j&z#@^WNnKUu1WePTBaT#F^85_CdpWDOAgZaKx?C!b7V(sr(mja49aB%eHQ#PQm z4VCGrOwhxI$n!}eva zV45`D2Ay$$ux)3xU42}8YmbA|jo?8s$fgW>giU04FpeBp#Bl%sJBtFm-coE_W3Z;0}p`lJwN?Q#&@AJxe>H zecTu!`>dBDVR@hGJ@E`M@j?S*3|K#OY)Qy0)eu6g+Vq8;?BLzwO) zdUs`}!-85Ll^C5^4^+Lx?_S_-V6FQtIx$aYuvXpy71o~@mltiywhtx0Wpo>l-F>)S z&jCy|IuP`0kZ{HbS&57mR@#`HGo$%K4NB6LD!`Mt3+^HdZgy?ii zrxWc$ziNE!mwR7mGm$nfGflm@tKHM95rIr4Lf&`sQb0#tL&8(dE@Bc0yAX=3pm7q} zhc%MgR<3&r+C@8lh{27G8z2EcP9x_;Hle4kh0jXgOE_aw&E1@fyYYZt2mksb7q;Fg3X#lxYvbnmJ!D@n06Z7eDHX0Ku_Bq z9jTyQ0?F_(fXJnm^MfTCzU!92^u^|f?Sm$(pYeZ&eT{4E|7tAAc#>T1ANu3RW_P(8 zTod~kZ_+m5DwS-wMZ)698WDIPz9ipDQlAsMB1$g`$h{kG;>EKc}fQsBkNLI&3OfD$ySd4o4a zj3M+@@DW-u-21m*e%?so;+RMbdyPrUjcdd9P_uha#7u)hM2Qr69v|5jF>6I>`cpn5 z)J{#)KWlw&q^Fuz-bw-Kt(y#q@rzT9aEwk2aAlE0^r5N0mp$c-I2X07ypWPD-|7#J z&X46tW-nBWU7B7=&0iIgp4)*wQOuH0iZ^U@7P;d{)88@Iz?=w|m0=G_&`jeSydlJ>Ru-q} zTQHBcFkaSvquY$z!rHC5)2KD|6uf4iM$A1qtPlube-!31PcPFe(_=}$#FJna?&j1u z^-T!28A#z-uEG~tK~-I#uQ_suaE!lkJL`+W@%Y5CF12EKLX5;#PU{NAY?aYUGVF z@=;$H%Jra1{0$Absw&^iEnhC73X3n(scWh+u6^#Al=01A27I%uWunX|X*Rs5^Hi?Z zKSr$$RUO=)Y|+1Epw20Aq(W8Gz!GT`pxnU}Pgs^=ou4=6Sh}FKR#L$wEp@2UHUxD6 z-MG))BugL`+TZ8)?Y(!1_NcJskXvUQd0AR5;>E zE;Iohaag@=Qkdl-&Sy_vEig0N9_)@@xM!b3k^FUtS=scx3oQlJq-}OS3E5Z12#Upf zTQ3czV+DmO9nc7U_p-)#P+W1!dx0krPh>b6nw0kDmOc`w%G~$%f#1+8=eHga09#lb zw5EOjocZj~vXvgk-O$t=y|kf~ALReLTa+Pwnivb?OVumyBk%r6@Dr&^=bzT?*Hl#H z2&>wuwop}=P^W|=_&G`0`Sd&pn4dQu+})v*da3Xdlr~8pnmon3Y zXY4CX`v4NA=kl^RdVNZw?cVn9x9FE?bLq~u?n(iE644ws{Cb4K;2$1@O#TBvdRaa# zipw)D(?n&&DU()^)*|QquQ^>$(e(%m0pKaJn^?&itC>De$&k7(e8Y$! zzB!WgeJjTyYhGZ{{30YHr<4go_tkvtrKU!wD*vqycy)H>oa^R2G1e23x_9wS&?skj zW)lPXdEGl7Y%Rcg9B^a3n_m+^*Wez?U$u*@T%x?Cis>VN!qmo|HbBRuuD_TA9dSi- zh*jUGUVh*~2PO(o)x8e%jy_*G<$ty*msC#cP&q$y(tLh^|0#|1&86#LMZPK7r61qX zy3C~!gKT?qK3R4ZBu?yK5fDpA^8kGW-Fp8)@OX@NX;<9RVrhpl{DRRtk~h;x!+g$s zjbPm&LzN<_mvCTIAZyZB=%&A9W)#+t<*kxqtUh|b0G;|s_{07vLqi0SXd`~Zp?pQi zTni|lOgQ6&C9^q|gS=)Q=(>CLUXP}YHY1ma3_n$>6O z@Rz9dMP$m?ac%j5yD_d`AFu*%9Z!Ice=L_>QVl4mtg)z_YSpz)OKKZ0X&d+XX3d5pTrGPaCvm}c zt}m@s%Oa49EA`r#CZu?%TPsj)EM26oi6B zy_O%iitiaFAXM=i*Hmopm+An)2PVOjOY$c_2fG(SY=|qoN9a^1WK;zas zjB%H(DWVOjFntcGj!GC&(||-Yy+F!J=v?1pi0|wxaPc-Bk0M+zbYo><$j=r>L7%*5 zC~P(n-ArO+)n45he1pJ5DQ*6BcK!lHnsFwMuQk1by|DpfPo#b?+U0S5DFbZuJJFB0 zqMJ8vLMSZuXn(RuF89(&!D(Wm?86LfQ`f}3g%>1VI3_5xnsF~Q|4p zjC@*BTE3>Dm-d=%U`SmxD^x<8$bP_8%m5^<)*G6o>bG!X8BS zegxc+$ZU8wFj9RS)6B&3=2-(O)R0+J8P2H|EkpS1Ho-}cr!^lAa2C62w#9Am6s1Td zJm~RLY_er{Y@^DN=e!pu9Vw&f!7~?Bhk*0jgX5~Ul4Pfb@Ho!C(ue?y>_}){WAekDQ5maBT za#>C!&^UE^a4x4|b#DOE!6(~AbE5>`ZOx7o@fi|QF`o97H$!Q0r;b`QB=NGjBz)!H ztKTdh=|eu3Lgg*_mkm;(6aL%nSdn5dkkc_z53_I_nPSy^T_Sayu3VA8F=qeM6l zx@N_ukD9WVUjHJ*T!VFOHA^9T@#UJD@x7E&SAvknU?3!|9gkx=efiZYXb~_Jaxduk z0Kac6N1<)sOWpV8O*sUe2%+w9OA>?XFJd9X=bZzT2`Dg8=(DVw{HV(2wemf?!sv5- zoICR8w)ynNG#!`g)02*`W;{toH#>(qi1+d18Jj*x!^e$`1ylYXP4NYO+Z#_fQhB{b z)mD16R)~HSM5?XmJeqgy3bL~+w1$X7UkXkv$kary&8!bo=DXIC04}f2DxKPrl*jAm z{FpytH)!}WMU~q~UB|>1dEAl)2c$09tb&$Zp)&idB$@C&Z+2w{%M*;>t&k>-h4MrK z2FfmGr;?5e|5hlK@quo0tBWJXx49MO#02-X@b}|5a#T+gwp?*$Sa~%a2Y4#!}OcTSIuP!%ik(AlevkRf0nGV~qM)t-_d6B0&INH#WxR9P9@q|Ymd z&liw#J!fa848BRogLrSQdGhA_dLUzBRxz{)(a^koG=-V5IZNo4do|>2zec4)@ggtI zKAr+Y^FT^OmDm=(t+xe#&E@|}()B>HGIrVVjS$L|e0W`jUTXJ#vfwY-`&-?yhv6k! z#Vx~reoDeMO>F{{BJMBSEq{d@dD0`o9c0J)cj*=gF#{l>neu$_+M@i^F!T61A>l9R zTQCI}NVJoTSGck~xHyfN^0e@NufFj_fsveevHlUHP)K@0;7`@T$pyj+6ij~Vo7+I; zP?z=S2Z9Zgi_H~78&!iwnJ!~(v;|F7G4`!Ew_`=M{h6JmF}kvhVYoJ#crTN^3fH%L z?d*HJie#g*Ey6*ZFlAvOEEwRB8%NF}i2dSMiB&v~o{`4U`|CGq&VAt*duBX^g3+BE zJ;O8}KB^57#DOI^8SLRM@561o-M0E5a;)N69uUKrG_fC38_t^Hrd@L*kYCxyQ`$E8>K=-=_haFU7x=;jWTEpeG$>;{kTGY&9AKd;PzvHi@2wtZnb-V(>& z+Sr!6Cv>xLLmU>*l2;HnXG3rpVJmGPmMD83xTrLw+cNDqE1~rvN{i1;NZ7I~jbyJ(KH9Ayh^cB0tR}Br|mB&CL{MPpRB#cll6`6f~&|F&mW{4`pad@xl42`8muB zi@@TFYM{ix)AAMFW(}P`2f8>&vPmLp)_%=C!%pp26*dKY(Tdrev1>@Sjag6dnar0N z;3bl|fDB)8%>LYRt@!yD!EK11MPYd9Gjwwj*FeaPOqNRHwdpmh;8YW)qZoPRm@Ys)8tWjS&K*o!-< zF#e)$$-I8`*i>qv&MI_xX3a)4Mw)@o8@J*RE!P)?1;dL*pzz9_Q@LZ>jO0esAHFIw512Xspy{4wD}Ddh?#7H4&wua(aJX7{cO&GzWjn46ss z9I>$ssdgn@H#-r?XUX-a+z8YH%nrcYH%Ydda6_(8n=5-mJ+4gBW!^VDjr`ynPe($! z8Wlp7!tiRMF7CK#cAt0d85UA92iixqSp+n1FMkCdv3n1lxnmEmX({h!o)S{b5-?U$ z1`AO|-TyIGZcFF9^C1;vt{46jaO4sn+bP zQ}0ho?1!Y8c7^7q{$U28gaw~l@qrj>hNT%^U~k%xxcHq|1Xv-%EeyUU|3N{~?Lfj@ zaig5cnnBX^+LHKALQBr_$Ps9<6QQ@+MkG1BWbM+>q#BvfBPG7`;KhlP7L{_RhNXG$ z6Hy7iK94m~rjP8E=4!mxPRav{%>A3SzIU5{69ue|nHeP?5r!02`NSz*R2cEluiDiR zqtT^D*YXB5$>$~F?A3gBwbHGHHJ3E^4+caeoj0Pex@!q{EYI8x(T#^Us}#iM1`$tA zYsH%0vzL-oD>K{9s+T~N?#FaDVbN%5xtC_^)2mtd1eC?c&((uhVCsfRGV6OK z{Ue?yLU}vV-#gsbghULd8io`Xs06sj(Gk2EPlAH`YEs1+KFHm6Sm3fGDKg(}(kZWm zz|pUHEqt!VQnfN;yeR|}(jM5EKA2Zqv3XuAPTcOuAnBcDv5}Cr;iwjFs)BgAoN47V zrQ7loa%I63RdtrDH}kU*uZKgKeS((4@^babOT|7fd`ncQq$SURJ5a~Vmg_^U`Rb-B zMR;ebR&h?a9N8S9r`jB<=-^NFHSz+4m`K8SY1X$%mX~oG*)HxuNR~IMSTyPhDs*ig zPFA}hSf=$WI?qytxy+uV@8Fbl@EX)*J|apgPT|K{?NZ+eu7Ga9LvOzIvn^$J$VP0A zLXQ~V=SOi-{j#eg!ws#=?9cemMI2^ZV8>Ums)l8_b+Kv@)LIyWoe^<$JJ_$9_BqQq z(S9!A9L@FD5Wy-+Ut?2`%siD=Ua@ zL?D1u9bJHAxTWOvx*c0dC>88^O{&Yz3F_4+sjeRwIqAJRr9y#^Jd{79?w)2?GO7mK z(3xhQ{p@G>hTJKk$b-AT5j@Ex3%{V{fx!CNuAvyi;5XeFfp^gNT6D^)#2o`gBI{ zgZA)IrLAjOxt}wNDjWQAc&2>i!H(YE#0c7EYW}+ZTd74-24&9%8O4uixGX7$9q$zf z`TRv7wy9QV#!CVPF9#WC01LagF*C~$RzBdlhBW1D>NM2Ff7@=@E$@<^Yfmz|rcPO5 z$N%mghu_x{o*H~ND-TXmTkgIjie2Ca?H!q^QaSFZoa<@6hX_&Z+2BaC72&-7sf5_ zjiTP%%;#R~Jzy=X8(5DFF%s+IDrEqLFL;hV8hKVdb7AFMvb;EF4WWl`)7CrfYg-Gz zBWRqtiIWG@DLa%N1>kc!F_-fC;~SIvn`u3XrsYd-L!3lW6|tNQf{$nj`$@(d^=|Di z92#nsY&SVY)>%P*o5{T$9uhRUK8WB0aH8q73=tcNn=ig5jgm<6p@xFo8?*V7+zKl( z#u-Z|=I~#azq7CHUU5#I?~s~q8vNJE#E%(43?>oY?-{HI@Ny&dkfFCr(x38ehayq z%3o8jVWmUXso*RN>X$J%pjmb~iGcw$mOUB!=C|q$PkhCq9BjYgZ)(VAW!-+%SE%*g zkvKJu%Sf$IZW3lKRPJ8XR=l|5WBuSzI*QBc`Q*dfkO9|E{xh`LM0Vvy7)6#n^YcoI zgFEUKooI1OmlL{%qn7Z->Ad$(j7dKm@D(~m1#hNU`iy$!yxe;6yErnZv#%$^t&sT? z#yl~6hQ&7?uskLd8{J0`>_ z_kMxDDSwq66)~E+7~YyFB^iM3JtaoO7LE90qU z79_hmpEnnYB{NI+VeE8?WG=0R1;k{wY2>F|QtFJ*;m(jJXHSDYdL%;Ksvvf6F{@I8 z*_lYEdCD#@+e|?<-)8>vBL^_@tIvI|B*uWeh|l<&-Tc^(D{*}U)7m2XX3j7(8>j@^!IR1L5IL87V`0G=*_Fu}ItkW{HSir}X^Rn2TkEPLOo?Hl^ zA9?qFVfbF1fE_-V;+pdO1C5SK{~bBM?0m(M(V7A@exFiwjAY=4V?29>rbKjj#P$Q7 ziO{!RR4OFNILogM+l6R5+P$P%=tAz4Kv5uiS{6#3{RJ*8wQZB1bX>mT9>6lkWb|wJWli2MeVDPcc!TGFyO4 zP*ih-i71V@ELh#Dn@H2<_E~~n%M{EFrLFrc4n^T5Z}JQ`|+qOK`A;z0n9A z#vOUeFv6w{>dya>x2GqU>?rSAiUnfOa6%JEq>;G%+ F{{nZIx-|d* literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccoeff_1.jpg b/doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccoeff_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b594e94c91bb36ee9df4c11b8a539f68b6957ed3 GIT binary patch literal 20145 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccoeffn_2.jpg b/doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccoeffn_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..884391c068a567a2227e1711db1df58b9de3d2aa GIT binary patch literal 21113 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îj{Ew%^X&Ydm&}if?-n?g)E>MjmrP69owF#R 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccorr_3.jpg b/doc/py_tutorials/py_imgproc/py_template_matching/images/template_ccorr_3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6f9bdf9668c9c14caccc0247a4cb70b87cffd562 GIT binary patch literal 19180 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 AAOHXW literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_template_matching/images/template_sqdiff_5.jpg b/doc/py_tutorials/py_imgproc/py_template_matching/images/template_sqdiff_5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8685c4a432aeb631ffc4fe7a218e6d09991efec7 GIT binary patch literal 20073 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 threshold) + for pt in zip(*loc[::-1]): + cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2) + + cv2.imwrite('res.png',img_rgb) + +Result: + + .. image:: images/res_mario.jpg + :alt: Template Matching + :align: center + +Additional Resources +===================== + +Exercises +============ diff --git a/doc/py_tutorials/py_imgproc/py_thresholding/images/ada_threshold.jpg b/doc/py_tutorials/py_imgproc/py_thresholding/images/ada_threshold.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f071b4eb969c66164d10d54d1f2804d792b698c GIT binary patch literal 72648 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_thresholding/images/threshold.jpg b/doc/py_tutorials/py_imgproc/py_thresholding/images/threshold.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e203927791e209945680447d515812c543ca76e9 GIT binary patch literal 15543 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 Va?EJ`BuQD0IV}Yf;+{xh@?Tye#K-^u literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/images/fft2.jpg b/doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/images/fft2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e0b5043f2a6f8d1c4813f3097151bcd01216b75 GIT binary patch literal 16029 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/images/fft5.jpg b/doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/images/fft5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb2160036d30b304b350b53b3c2c544528a2c5ed GIT binary patch literal 17442 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/py_fourier_transform.rst b/doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/py_fourier_transform.rst new file mode 100644 index 000000000..532ae80e0 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/py_fourier_transform.rst @@ -0,0 +1,255 @@ +.. _Fourier_Transform: + +Fourier Transform +******************* + +Goal +====== + +In this section, we will learn + * To find the Fourier Transform of images using OpenCV + * To utilize the FFT functions available in Numpy + * Some applications of Fourier Transform + * We will see following functions : **cv2.dft()**, **cv2.idft()** etc + +Theory +======== + +Fourier Transform is used to analyze the frequency characteristics of various filters. For images, **2D Discrete Fourier Transform (DFT)** is used to find the frequency domain. A fast algorithm called **Fast Fourier Transform (FFT)** is used for calculation of DFT. Details about these can be found in any image processing or signal processing textbooks. Please see `Additional Resources`_ section. + +For a sinusoidal signal, :math:`x(t) = A \sin(2 \pi ft)`, we can say :math:`f` is the frequency of signal, and if its frequency domain is taken, we can see a spike at :math:`f`. If signal is sampled to form a discrete signal, we get the same frequency domain, but is periodic in the range :math:`[- \pi, \pi]` or :math:`[0,2\pi]` (or :math:`[0,N]` for N-point DFT). You can consider an image as a signal which is sampled in two directions. So taking fourier transform in both X and Y directions gives you the frequency representation of image. + +More intuitively, for the sinusoidal signal, if the amplitude varies so fast in short time, you can say it is a high frequency signal. If it varies slowly, it is a low frequency signal. You can extend the same idea to images. Where does the amplitude varies drastically in images ? At the edge points, or noises. So we can say, edges and noises are high frequency contents in an image. If there is no much changes in amplitude, it is a low frequency component. ( Some links are added to `Additional Resources`_ which explains frequency transform intuitively with examples). + +Now we will see how to find the Fourier Transform. + +Fourier Transform in Numpy +============================ +First we will see how to find Fourier Transform using Numpy. Numpy has an FFT package to do this. **np.fft.fft2()** provides us the frequency transform which will be a complex array. Its first argument is the input image, which is grayscale. Second argument is optional which decides the size of output array. If it is greater than size of input image, input image is padded with zeros before calculation of FFT. If it is less than input image, input image will be cropped. If no arguments passed, Output array size will be same as input. + +Now once you got the result, zero frequency component (DC component) will be at top left corner. If you want to bring it to center, you need to shift the result by :math:`\frac{N}{2}` in both the directions. This is simply done by the function, **np.fft.fftshift()**. (It is more easier to analyze). Once you found the frequency transform, you can find the magnitude spectrum. +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + img = cv2.imread('messi5.jpg',0) + f = np.fft.fft2(img) + fshift = np.fft.fftshift(f) + magnitude_spectrum = 20*np.log(np.abs(fshift)) + + plt.subplot(121),plt.imshow(img, cmap = 'gray') + plt.title('Input Image'), plt.xticks([]), plt.yticks([]) + plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray') + plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([]) + plt.show() + +Result look like below: + + .. image:: images/fft1.jpg + :alt: Magnitude Spectrum + :align: center + +See, You can see more whiter region at the center showing low frequency content is more. + +So you found the frequency transform Now you can do some operations in frequency domain, like high pass filtering and reconstruct the image, ie find inverse DFT. For that you simply remove the low frequencies by masking with a rectangular window of size 60x60. Then apply the inverse shift using **np.fft.ifftshift()** so that DC component again come at the top-left corner. Then find inverse FFT using **np.ifft2()** function. The result, again, will be a complex number. You can take its absolute value. +:: + + rows, cols = img.shape + crow,ccol = rows/2 , cols/2 + fshift[crow-30:crow+30, ccol-30:ccol+30] = 0 + f_ishift = np.fft.ifftshift(fshift) + img_back = np.fft.ifft2(f_ishift) + img_back = np.abs(img_back) + + plt.subplot(131),plt.imshow(img, cmap = 'gray') + plt.title('Input Image'), plt.xticks([]), plt.yticks([]) + plt.subplot(132),plt.imshow(img_back, cmap = 'gray') + plt.title('Image after HPF'), plt.xticks([]), plt.yticks([]) + plt.subplot(133),plt.imshow(img_back) + plt.title('Result in JET'), plt.xticks([]), plt.yticks([]) + + plt.show() + +Result look like below: + + .. image:: images/fft2.jpg + :alt: High Pass Filtering + :align: center + +The result shows High Pass Filtering is an edge detection operation. This is what we have seen in Image Gradients chapter. This also shows that most of the image data is present in the Low frequency region of the spectrum. Anyway we have seen how to find DFT, IDFT etc in Numpy. Now let's see how to do it in OpenCV. + +If you closely watch the result, especially the last image in JET color, you can see some artifacts (One instance I have marked in red arrow). It shows some ripple like structures there, and it is called **ringing effects**. It is caused by the rectangular window we used for masking. This mask is converted to sinc shape which causes this problem. So rectangular windows is not used for filtering. Better option is Gaussian Windows. + +Fourier Transform in OpenCV +============================ + +OpenCV provides the functions **cv2.dft()** and **cv2.idft()** for this. It returns the same result as previous, but with two channels. First channel will have the real part of the result and second channel will have the imaginary part of the result. The input image should be converted to np.float32 first. We will see how to do it. +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img = cv2.imread('messi5.jpg',0) + + dft = cv2.dft(np.float32(img),flags = cv2.DFT_COMPLEX_OUTPUT) + dft_shift = np.fft.fftshift(dft) + + magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1])) + + plt.subplot(121),plt.imshow(img, cmap = 'gray') + plt.title('Input Image'), plt.xticks([]), plt.yticks([]) + plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray') + plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([]) + plt.show() + +.. note:: You can also use **cv2.cartToPolar()** which returns both magnitude and phase in a single shot + +So, now we have to do inverse DFT. In previous session, we created a HPF, this time we will see how to remove high frequency contents in the image, ie we apply LPF to image. It actually blurs the image. For this, we create a mask first with high value (1) at low frequencies, ie we pass the LF content, and 0 at HF region. +:: + + rows, cols = img.shape + crow,ccol = rows/2 , cols/2 + + # create a mask first, center square is 1, remaining all zeros + mask = np.zeros((rows,cols,2),np.uint8) + mask[crow-30:crow+30, ccol-30:ccol+30] = 1 + + # apply mask and inverse DFT + fshift = dft_shift*mask + f_ishift = np.fft.ifftshift(fshift) + img_back = cv2.idft(f_ishift) + img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1]) + + plt.subplot(121),plt.imshow(img, cmap = 'gray') + plt.title('Input Image'), plt.xticks([]), plt.yticks([]) + plt.subplot(122),plt.imshow(img_back, cmap = 'gray') + plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([]) + plt.show() + +See the result: + + .. image:: images/fft4.jpg + :alt: Magnitude Spectrum + :align: center + +.. note:: As usual, OpenCV functions **cv2.dft()** and **cv2.idft()** are faster than Numpy counterparts. But Numpy functions are more user-friendly. For more details about performance issues, see below section. + +Performance Optimization of DFT +================================== + +Performance of DFT calculation is better for some array size. It is fastest when array size is power of two. The arrays whose size is a product of 2’s, 3’s, and 5’s are also processed quite efficiently. So if you are worried about the performance of your code, you can modify the size of the array to any optimal size (by padding zeros) before finding DFT. For OpenCV, you have to manually pad zeros. But for Numpy, you specify the new size of FFT calculation, and it will automatically pad zeros for you. + +So how do we find this optimal size ? OpenCV provides a function, **cv2.getOptimalDFTSize()** for this. It is applicable to both **cv2.dft()** and **np.fft.fft2()**. Let's check their performance using IPython magic command ``%timeit``. +:: + + In [16]: img = cv2.imread('messi5.jpg',0) + In [17]: rows,cols = img.shape + In [18]: print rows,cols + 342 548 + + In [19]: nrows = cv2.getOptimalDFTSize(rows) + In [20]: ncols = cv2.getOptimalDFTSize(cols) + In [21]: print nrows, ncols + 360 576 + +See, the size (342,548) is modified to (360, 576). Now let's pad it with zeros (for OpenCV) and find their DFT calculation performance. You can do it by creating a new big zero array and copy the data to it, or use **cv2.copyMakeBorder()**. +:: + + nimg = np.zeros((nrows,ncols)) + nimg[:rows,:cols] = img + +OR: +:: + + right = ncols - cols + bottom = nrows - rows + bordertype = cv2.BORDER_CONSTANT #just to avoid line breakup in PDF file + nimg = cv2.copyMakeBorder(img,0,bottom,0,right,bordertype, value = 0) + +Now we calculate the DFT performance comparison of Numpy function: +:: + + In [22]: %timeit fft1 = np.fft.fft2(img) + 10 loops, best of 3: 40.9 ms per loop + In [23]: %timeit fft2 = np.fft.fft2(img,[nrows,ncols]) + 100 loops, best of 3: 10.4 ms per loop + +It shows a 4x speedup. Now we will try the same with OpenCV functions. +:: + + In [24]: %timeit dft1= cv2.dft(np.float32(img),flags=cv2.DFT_COMPLEX_OUTPUT) + 100 loops, best of 3: 13.5 ms per loop + In [27]: %timeit dft2= cv2.dft(np.float32(nimg),flags=cv2.DFT_COMPLEX_OUTPUT) + 100 loops, best of 3: 3.11 ms per loop + +It also shows a 4x speed-up. You can also see that OpenCV functions are around 3x faster than Numpy functions. This can be tested for inverse FFT also, and that is left as an exercise for you. + +Why Laplacian is a High Pass Filter? +======================================= + +A similar question was asked in a forum. The question is, why Laplacian is a high pass filter? Why Sobel is a HPF? etc. And the first answer given to it was in terms of Fourier Transform. Just take the fourier transform of Laplacian for some higher size of FFT. Analyze it: +:: + + import cv2 + import numpy as np + from matplotlib import pyplot as plt + + # simple averaging filter without scaling parameter + mean_filter = np.ones((3,3)) + + # creating a guassian filter + x = cv2.getGaussianKernel(5,10) + gaussian = x*x.T + + # different edge detecting filters + # scharr in x-direction + scharr = np.array([[-3, 0, 3], + [-10,0,10], + [-3, 0, 3]]) + # sobel in x direction + sobel_x= np.array([[-1, 0, 1], + [-2, 0, 2], + [-1, 0, 1]]) + # sobel in y direction + sobel_y= np.array([[-1,-2,-1], + [0, 0, 0], + [1, 2, 1]]) + # laplacian + laplacian=np.array([[0, 1, 0], + [1,-4, 1], + [0, 1, 0]]) + + filters = [mean_filter, gaussian, laplacian, sobel_x, sobel_y, scharr] + filter_name = ['mean_filter', 'gaussian','laplacian', 'sobel_x', \ + 'sobel_y', 'scharr_x'] + fft_filters = [np.fft.fft2(x) for x in filters] + fft_shift = [np.fft.fftshift(y) for y in fft_filters] + mag_spectrum = [np.log(np.abs(z)+1) for z in fft_shift] + + for i in xrange(6): + plt.subplot(2,3,i+1),plt.imshow(mag_spectrum[i],cmap = 'gray') + plt.title(filter_name[i]), plt.xticks([]), plt.yticks([]) + + plt.show() + +See the result: + + .. image:: images/fft5.jpg + :alt: Frequency Spectrum of different Kernels + :align: center + +From image, you can see what frequency region each kernel blocks, and what region it passes. From that information, we can say why each kernel is a HPF or a LPF + +Additional Resources +===================== + +1. `An Intuitive Explanation of Fourier Theory `_ by Steven Lehar +2. `Fourier Transform `_ at HIPR +3. `What does frequency domain denote in case of images? `_ + + +Exercises +============ diff --git a/doc/py_tutorials/py_imgproc/py_transforms/py_table_of_contents_transforms/images/transform_fourier.jpg b/doc/py_tutorials/py_imgproc/py_transforms/py_table_of_contents_transforms/images/transform_fourier.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a71937f0f7de05e43ccb503a00da851382adc99 GIT binary patch literal 4824 zcmbW3cU03&m&bphD>bwL3Q>wE*pObM)F=2Lf)F}LFN&DZTM$&5bPxmuq=^_HbVLPI zO6XMxQl%x*2|W;!<$0bxyYIVy?e3j3_spDoXU_ec@11joHb(meaOvy9bpa3v06-@L zpiKZ;03$sE0|PzdiDP7BWMXDxVLmZVR@PH&U`}psFeezy!+#dS!z;uG1`C`Q5E2%K zLZLhmQE^cb@v|aOk-shhog8ImV&-6B;Sk{k^NReRjrJ7)vj9$j6Fo>2paX;G!5~^I z06nRb5%jkK|7jpPdWMrKSx%j1JxQqL0_Z^W^mHfnp8%X>hn~a%1~4P{d6`>GJVy4+ zqDbBw;mLU{Vw#oT_>2cP#bq5(5vNY`Lj(kcBrZr^yd)(jub`-;tfHl@qpSA^T>qYl zDZ8{pt!?eNj?S*3;U6QT__3ekvvczciv;5DrDf9A_Rj9!{sH;$FD?*3{}0xQ z{|D@UaDh*_=uTu|VE&5>MCX4p>A?()=Vh3k2Q&mYz?j0wZ<%p3}qc6IU2cGak}A!NBQ z{ridjBl`-DB*|z^*=+xNN&?U&!yi-_F%}=W-JX?R=FgOj#M;SMI*=yhs`$tiHy}!a z^PA;%>tGu2XQbf~v7Wpmze597gY(GUbBzZ1*P50uYI*jH1%vkuT`ae}SHBA)m;%a8 z#_O`zheY^mgGNjwjNw65#1>(QksYw4Wm)@4CTcoheYh)@3*~E@M^qNsXOH zwGAvW@nMf4oT4>6VD@%uspFB;@lOGzS+jZyQ(g+wZ5c12cFdE^t&Xq1@1Qf~52hZj zmwBYT&u+-xA3q#BhS0xwDFiMo3cm8Q-_6oF%~m9Q!{>#?E9ovL-@6mH`2~q;bj%tr zi;DtK?dxq`XW%tDX(}!p*X0 z4D&$FD~#oZnAw^f3wiac_@1o0$ro#lgs_h=adX<>GQrei+qM8-?HX?-u>7sW;F!R>m&2jRy*~6XjY;aQc0u@# zQW<86xoa4BDYtel(0k;P^H0y2RrKvxA-w$Q$x%#_aA^X-fu6fjxayFw zuzJ6tdzESwOK5h+g51#3m3UuHE_b8l(f8M$ytWPPgMF=MQ_`_N<=^g>cv}>V82QU@VsKl^qk7)_26S^s+RE z6j=WV;(#@-*%(Hdo@q&sw2%l-`lIKjeUeSIc)}OQ5_$Ey1c%`vINj6gV0ye{>S*;B z?RB~I2;k_QbIi@hK{>COH?hx3Y#b~jLc@MRJ@4@ek>ERWYSIscM=QNcraTpXbB#B) zb0GVE2{txcuC0pyxaw;G(EV{<`@SZi$Tgk0dW(XgzgwAt*LFJ}$))Weu*rmaTyW68 zRUY$@SYKy<${EG1`ikud6B1`{%db%CafF}IS$qH$%Yu*C&X2^rpXw&Mm|I8t`}Erq zi;$N6F^_s%QMcGWo{GB~Ail7_)8;$A*7Mlnl}=J15n-x&OI=wVUVh`qI`z&_G}uPl zQ~~$pM#L1e{d7(D(j|*6J3@#aA3mP#vU|IAYKF~@)hm_qN+bq@QN0wOhMLB~+Sa8b zNySmu)b#VaW{hr|MRC~vnRJUy2ERl`wC-D$J#TBRbg%c~ne8t1d;;uJqz65EgT@2pF8{-*BkCuneJ zKus$$?k3E3Y_p0YJC_cPbYn`oF=H>5nzogpPv&Bm`<6!|?JaKvz3X2_Lwb+{UDrt% ziJk)2d>SCup{56Z-8TLyJgGi|W9DX$;a2Io6)1r%${Tu%>PbGv+tI9?2_k|GhI-Fxg`fgJ&}LneGg?)B6$m7UoDb6-s*1Wt(jt zAvTuAnAkM2&tBW=vU_2X>;1FprK7S2^fMk1MGi-C?ziIlH+YF6R%qX`((%G=gS~jo zrM(JMc9~!Ip&Qq*MRtQbShfH!y}H4gnDDAPsI+ zpXZa2-9h04W^)IV9<2^i_&A%w2{X%a8nA#)P1AkH$;e_7`C)&!H}ybj*?mo-etRs? zxWUhz$xz8CHFrICsLr#@sgZQ{LZEhf-HXPjRTWpg>*D}q+>wbbYi&ACi@VSb`*=+* zt|c{HiTHTUlIO~n`;d)Vs#u`T1Q7nl^{9FD3!8!ViebuB!es+r5z-kIVZ>wLGl}BGlgZ z8D1@0yYehfvDCvRGVl?+CG_KMaT->`JD8DDy=ti0@faNkU8&Qs-zm_ev!V3y9kj!83h!_DTM zaxuMY>LnkuoXwKQC|!4S(M=ydo{}#o8U&D zAjty-Gm_5C&zf!Sn&$-7>%A2918mmX!}#7pV-1ZZda*kA&OX-aAg`4Ccv8xSA>-JD zF+iy+T zjOvTVs9lVM110BpBD=juE6G#a_{LDvax3+P zN^)hp-z8jz(0uNSKr8%_5it z7CY(KvPk9_?rXdZ{+?bn{b22Ew38LWCA1|@;0I{H-_Z&obocmZ?VMb(z-bkrY3f@U zC%cCR`W{Q2OQ*Fig)|u4qsm3_$^m2`PPnDXB4hCD$w-o#XjT)uFPt) z>`lCIdzpGZVKw3@3lQ&J|8y9;g=H#o(@~bMEn7LZCO-@fo2ngI%j<8M%XIh>J59Kh zH?Qgxm-qEBeCf_;h!wDPx{^`gV++rKBmVe9(VV(|7ZH&>{#|e|An~G-uzE0FP}<67 zxgMev%NoLvApcd6AtLzDtTug7j#Mk!5a_d!cYyY6HSeh&AAatvsv5YrGf2*AQY7)L zSYEDkTbO^~jU&B>_TXV3?7n%uYtm25aPb$BZ4VlijP+e%zihqXBm=Jky+Pf&Y-s4Q z-OqoJBmG+VlM6k4WpA_$zHB!X{zweYfNbUBer%pl{L~soruvbqch%S>qVnIjxt|gD)nKOqN!Gc$V>IBmw2sKX z?a=3Asd9-ERZud-Xh;2MPrtfOM3FR&kzEB_v%2+hz}=l(f9vhv+rj3QUqQ?nDkvf} znNEeEpW%CFn9(Ee+z(d=3S2fU8c>1XKy`7*)dx%NR~K!>x^I4Hx@#0Z;Lt2OukVX+ zmzt7rYJ!VxS!2}?`y69iw5T@v{Ui0%Kl7A6RSy4*F^SjnZ0Lk-5S8VhIV+m+?% zRlznalCE-b1ojV=F6WX~XaF5wwmS`gR?>h^BXdT@ZVl@FwM7?}>K+6c|i=a0-nKWPpA=xT8 z-|)jBVSUT34wu9uskTcE%XZYy!XV^|s_=(;9V7*X0Bbpn`0fxsJgKK|)&hSBuqZzVp< ziH8XN9`mHni9fbi>;}j-iYbdfDp1pkkESL(sjeGe#9kVubDzRKe-J89&Flz>c_#Zs z>MJoW@y>2M!dIC(7%cvT((v`e2)WPqm71TFsmc||E}>UaprkwFLAKY^umyr=of zxSo79d+>v~+bo8M3(Xy7QF8?Dcs30?DP(nqJY^@GLjEo{)a!j}*BgJLerEiKFdUY` zg77V-pmEd{L_!G-5NX~#Z!wxnI)WaR*`*Fq&yaJ=ji_f-*dbJnMH*1c>Qa$79$=nAop?d8*F#ZXy9?)PP6=&}6D8 zEEy|)kRgY^66|3mwkDG#n{$1ET4+|v*(`Z9vY?@O0}7s!Dv?eK*u{-DzY9@E7T9KM z*P3h`e5HI2-&#!U7gne-^IAMMpIf^;v&Qj}o<;T`ms+b+I%%!N-d6GYD(U^*Ax8St z)Xtr<_k2?e$w53dXLoVL4Qsuab@U)cAJoO`(Uv}=ZD~kpSH``&mxWd@5=b`L;oc}78 z>fd5*{qyjXy(ALEgg!Xtyxk`>!l?XA)qCe5KT8#!(H~n8i;sR7*}|gBM)IEC8=ah3 z8It_IAaGU=`LS3CX_nzUt;5=XX1PkMwrurDhniRz$<&flVEKW{$B6!O&|h9usaWal zkH%3KI*yhDJk$~=?ND;1YJr#**{TWi6cY}k3 zEKURJnkfdnX4ovm`$?YEiH7~mKA{&r!x0lzJXEl{DmB<9Z00r%XdR>hEIHXUK)t+q zqlgB~x#fSsx@!<)cGX~%BRiBr%@yvUp~3kCc*hNX@~a?DFOQ4)UxKzC75q3pBUNB< Nf2oMC-jVk6KLCP{aPI&B literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_transforms/py_table_of_contents_transforms/py_table_of_contents_transforms.rst b/doc/py_tutorials/py_imgproc/py_transforms/py_table_of_contents_transforms/py_table_of_contents_transforms.rst new file mode 100644 index 000000000..7aa17e8e3 --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_transforms/py_table_of_contents_transforms/py_table_of_contents_transforms.rst @@ -0,0 +1,30 @@ +.. _Table-Of-Content-Transforms: + +Image Transforms in OpenCV +----------------------------------------------------------- + +* :ref:`Fourier_Transform` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + ============= =================================================================== + |transform_1| Learn to find the Fourier Transform of images + + + ============= =================================================================== + + .. |transform_1| image:: images/transform_fourier.jpg + :height: 90pt + :width: 90pt + + +.. raw:: latex + + \pagebreak + +.. We use a custom table of content format and as the table of content only informs Sphinx about the hierarchy of the files, no need to show it. +.. toctree:: + :hidden: + + ../py_fourier_transform/py_fourier_transform diff --git a/doc/py_tutorials/py_imgproc/py_watershed/images/water_coins.jpg b/doc/py_tutorials/py_imgproc/py_watershed/images/water_coins.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf55f35a51d00c7f725772de668334a0ccff06aa GIT binary patch literal 16322 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 Nc-#}oi1f1fKL8OQ4~YN( literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_watershed/images/water_dt.jpg b/doc/py_tutorials/py_imgproc/py_watershed/images/water_dt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..940c2dbfd48a53b2f500c2142800fc60a9b5ccab GIT binary patch literal 15120 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 flmNVXZ71I@`flDg&2F8d!+ArI6Z>vc#3jbX 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
WlBS3yBM);+wzkQGGs)};Q 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_watershed/images/water_result.jpg b/doc/py_tutorials/py_imgproc/py_watershed/images/water_result.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8267feefd29bd38c585f14664be9867a52158096 GIT binary patch literal 30960 zcmbrl1yoyGw?7&R6p9viXp!QyXz>&%UR;9HLh<6RDWw#5D->yQPjPp*;!xb(f(J;# zKj(bsJNKUNzB|VMy|)=VV}!l-T2t4Y^S5U1f8VbH9xKTy$^p>O001=9AK-ogAOpZe z$H2fq$3%T#Vq!kT!o$WwU4*!}kMM{HiHV5_iHJzZX(>oZsmX|lD4$YN)6p?7Fpy9% zGBeUM)6z50|1k*~>Q$_VSOnPE1oWgtr1bxUhBj5oM8aff$eK&vs zMJFcOpBLb-3+(|q28v4TM>x2s0X2^S575xjAE4+*F@PHFk9rQkAi^Ym$}9DdMB^P6 zqcbUAVB8OECh3X}GR<))GryV3r$;#C6qHodEYDck*f|6Qg)bz~k@45N4^^MJ~?Va7d{nNAai_5EP*v;)9e4zo*|HT&S z^Iwep2VX=ez8;{|f`Ro1UuX|JQ8zjf2If=Vhs07ESnr%k82JLRNu}d{RCGLI;@5(ez(NM}mCjtNgcRb;2-yi(rW`BfU z2GBSqs3@?emgt2PFZyQ=E~0aNQ?|$WC`^0FSOkd>7j---jV`l||IPf|<-LCdWg-c~ zu-7IY)Ruv`BM+9P)(Ab@*X^}PewHa<;h_@Gw3Z@n1qcuvYU{$av$hISoGz$~euvXv z<>2~6?(4_H(o#7VbpX=?LE6Z0z~M==e2)GI9*JqYWtze`qdeZu@Y_O_}qTIz8xB1yjtDn6w7xA+?j->aG^1cVaIm<|`Wjbel&T58#{$}EPp&X*Dt<%5b zIr1|THgKRh0PT3z+*sc*m7P@ngKcLpP6#+Rj21^OMM>k`Au}NSeHI(Qr38BX)aH;o=~bM0Pptgs>>__!xcRn za_2YPlPdL!iOlBswJ%lbkFL*Qx^yvJP0Gx*+<11$6qXeBR9=0>R%@rN~;Lz$(^vEMU2 z4XJAZ=w)XchEjQQ^$$gE3d!ebPh7UJYI~?iB5^}>2>Q#;0g8ZFZ`z<6^@qWv8m}<_ zmz%T(AEYuFjxVE8U4719HJYmBA-chunOy?zR9kDiCEPQGQ8B<~hgP8K?pmI!?r$m0 z?jVStkYw?~ww<&9>7S6$DDniu%qznjG|nG{vei@CTeV_Oa1Kg5(DiHp4GI55pL`GX|z zQ^h}7nnm9HHEk9g4hODgd8>T4f!e+F$;?>CC%_#_C=5N8EBg{ya5k(N{Ogfs2Inf>qw|MnjM#EQTQ1Q~u0vKWerSJ5jMQ5LJSqSWW-twT zdk@gw2ak?+As^l1ufL84lP}tuFr3nd70}f5^em<&YC3eYkd|6J0%_G@8sVYGx`uCF zzVpt3nO-k5smRIk6;_8BcoU|L1uM$*HhrNa`Le;C9%M><^RE@?{}MGyL;s~9|BE!8 zvVoTr0X)^`@AkNSjKvD$Gf7Xv`R z9QA7v{CIP=bNTL*%=pwPx610oL3q>$K5>?P56HB+!THM?^fih1Uu&D^3+u2vka&)?8h*PYMOL0s28I27ydW^Ibyf_Qa1x80nW;FjEurl8hECpLDjYN+kn1mqQ z(;Ba%c%w>gKuQjviu0tWIDU1lMf{vda``~iu3$Y0J~?85R*Dne17sw>-2=e3=h!sO(qFjGXOrvDk3L0H*?U8R_{6_31YzDy zLB3A+k$s&%>h~zdMgPN=DziU?ARUp_*p>wJLJ?sV(;*p#-~6H=#!vilD6s{R{e0{a z)wGrany^`3=yh2Prfn+@^teXw^i(bom}MK={M|m0uPKx8TERK%TGmIh=MPFTOphU3 z^3AkUcYkQ$FP7U*wiuul@V_;{Y5LdVC;=4xDOEo3fAOqw55Q$;zXx3K@3mcD)p$I= z2A$=yWi2rz(L-Ie4u{+RLs@^zxQs%!Z^?8pod}HL>0e_rZzU9fSN_xi6Y`6_7)l4de{!}Zi(LQ926)@n%)S14s#S)3;w8Gh z&1o$zU(h_MP|^EIRUhR8$BJatL_pN!@4OD##_gfs!QH?5>JSpL${Gb&`31TJud)*f z*ovRrup)6#KF`pKb!&PLIKsKHZOuakxgc=gNgy)i9&jh!Y5;lp0=BVtTXn%haSw0} zfL!3PWjCMicE*&^?JMhj{-x~SBYrpC`?AURDf1Q!<#8|Lz*EG$^S&49J)m;Yr|)(e z8H7%m{bN1REfO?*^2Lz6ZLxbb$@p5x^$XQ zJ~9`dB<9l?SCbQSPkV1Wx{=ZW0Y0|(ZXy`;>#gWq`@i3{NNuEDj?Ue!V=l*(b*(Mj z<@@t&g+`##Z0((V!XJA^mp_kFnrnrAghoGKs?^-G&q{$f*59UxPfTNimguti+CwajM|@sxwhrjmvpsIPP&~s_+QoDEbSXG)A?z?b}Hm&u&R9gA^x% z!rwm4uVELMm;!uuR@F*-CppF5rv!*~7i4te5ENv*_>QGnl)s&*j`8WIpYJ{3i8A=^ z(eHb}p0-XSZ+PeF4m=R0=0jHVdqAFsrg`-4eh(=@q88i#4}0#moX=}{Xp6`VFm5D( z4cw-UIwwByB+GMHTa#}6T2hpUFLrQCvs!vefT+H^L|~1}l6Cq@$*{R`$YTY`;&~LA zIRQqrd2-7d__wzF7N``{-(F%p%uta@T9m^jUda$`I>;?nS{hBygFY$ZUQJ$C<9YJv z*cT@zQz)`R7=5`>jMKfgR-yN$yZOEy)re+@80gT45|5-;XR9TC)9ICYaKWPgYnM`5otCtK;*%3zM}Y=LEoQv;8mJrrW$ES} z7v+WE+Y$JbM*oHv4`hDQO905@2Mpc9QV>fMdW^dz9 z6<_&XF8di`A*2nYyVr;Mi*Eaqevjzoq&?$2 z*Ir#8US=0;bpj5B)b&g%Mziv=SkNb4b#v!)G;!z1>2C@qhN0hsT$PT=q%K(>RFzn% zsv1W}(pns?{%9G$GW|ropfTolWbyWqL{BlV`H&0R=5={w6(?F`kX|cp6}4vw7uToQ zr-6?jxJKg4C0;PiH0!M-8C`MK-|4#?x%4}caM|^>^7)xXbh$`It)0@%6jX;<{L&>n zb-0{>o1f}K`+^)CvK=o{LlUs=Ml!*GN069jsoQb6aS{DHEHTV!Gf6LXb$35$>iO7~ zfE+DuQ)*U-U=cGO6jT#XIL5qbNqaik;#s>QoL~lYk_BY9Hi8M$* z9E(qdJmZn4i}K`>V7US*PLToKezri_`#F=N-@)GQWvVujRGISPA_SLCZ zQ-LnR-_bo}#pyBSNF4np(zic8!wT;@U4ef*`g;S=osZ@u>@z*Xs6$y~Mhr4ZRxw&E zr;JpcEnnkI4Ngjf1o{zPwA};d$91O07n^m!}BYbtj)bDm#{K8-BFJQPh7W4ELFS&9O@QG{h+Us9Q&;NLoYJ z0BI$pALJ#P#6Ae})V-*CXPq6sCJ|d~Fova?z)IOc51*d@HT(X-oEeh!Ef{UYeKo;- z!yzOiZ9pDN6QR?J!21x-FKayERwkq4k}R~X-sW8uY+6)y2_-MpCh@c^ppC3!$a9}A zQTkTBnNlJtl);fiwnmO18W=ZzSg?j~*~|YVj3*W^;n4s?;Py|PBo=*zw@y;4;f3`h zu2T8U83XZ&3|y0HBadV;-d>K7wzFl2zalGGQ@f$QaJ<7dMCG|XrGx)W2c{=sMUaqnH-*%{+r%%q`EG6hN zD}`7I{^-}5I!fN3TX*>Uc6JCz+RP~wSf;`j`i*L_G8QWlc7)os7jo#JtQ0;^P4JdlS6qD!ZvzI^c;I;*M5O_DV*`XiwnHY8KSQFEerl5wMWi(gAcqUe;4M)UB7GSAKYkR zs#tW9X9~9=42=0|6=QoKUSpOSMXkqc zB?|d+w~_hCJlilzcg@QN-Aqt|H#0W~<~xgvsvS;x-^0@^)4)dw;8UIU#Jp0C*+Wub zm>|WDFZ?j0)oL;FFgG$!*S=w`v6(L#3M%xYA0xF|b z?L+NU*<}?IKjH4EtVsd*-%_LlSyCMKM8AapvHh89-UB+M+BU9HWe;j|MEo%227UYL z=X`v*2Ed-Z^I`6I){LubzKp{ zj3ftHds;8n$;^m^cb%tZjl?B>0085qPQblS_kdup>2o+8l}pLc#0>mb=-X2gP^I$l z%^~gT`vB5eugI;*>olVb=kQ%79Bgog!Ute{CtWvvNG0?4y9;;mQ91*pTl2Z4kQ(H5J={Kq;ZaJ9LdE8_^vkL1P zPuJeEv7NmEYQ@t=e&Ut&$xMI_$$#OS{~T|mG&k7W!=x$yR%D}$9|SWmP@_gwK&D1| zKVxi0PtfZuMfPC23=34A)tfq!9v&#*ulRsF8jK6{qT*$m$@ixO zm7TimIQSDpbH2|vbp6cN@O`@`!fMFQkHY3t*jx&JM`t&x1w$FFT^0eJLm~qb?Esvs z{n@-Pok}(2c>yK%;Qn)Z9{uuXq?-+9HFd^f8G?D$nZpq04LwDCiti%9vUzbHBEhm9<&+@-?meIO>_b|M)cl?tnu(;Y1bolUOMXC#ii7 z&BjJjj!rOcJqqXnZrY8v9X@qLZQ|rrFYMGhv(5x}SFRqTvV!plklKcv7i3j!94Ws` zYkFoRn01FX58jYk?4(6Dbzj)ZnFzM(}Jrvw9dAw7bM8na)`526I z4f$e9wqjB%${MPacZdJ;%|ncWvAcVKXsTusFv48Hm*dyPw>GP`p|fOG(+k zgOzY3+ZR%UU7b5Mj4znpozc#ah_JR2V~$PgeNiwq>-_HYiFGS}?U=xbByPl()bwzM0FW(lAevn*OECS|4{)aO$=)PRV;=X2Nx00Ys!8x!3IOrR}ZF zbDsB^Yu^c@?gX|x*fsljZ^q*&`NM%u6bjlh=j z;AqPUWT;N=a%!;MD3>WqYigXavYRxXp@s8>G=!-CI={M%EBLFuhDlmfwWR&vZB!VG zdG*@tBFF|>)l1QeJGd3xT1ec-di!jv{ zhAt#jlFN%pI$6&_(7nDsrc`&==yETsDXX`+N6=o)%uD}HUm9nR4k6+TO4_a`jyHfJh!;@G&#Mi8wY#R@jgVF!AiDg2A%?d_EI1n zxSxCl+35ki)gg26)n$lo+r&jV>pL+91V{KczL@UldW~1vsqzCrsJbHz0R>Ln15l6# zXh`Ss`F|ww-VGsr3~JL^Kb+d`zFmU9<6Jlfi3(_rNY=0~j#YeN;cRDqV0hWLW8(UI zwi^BvRju+c+#azagH6TKXOd{~7Ck*o19qm~eJ?QK4RAabT|1dc4(B}Y^~cunJKH>?W@Tz5vVidJ+55NsmIusu0 zXNt=d9`Rm@0oK8}-MCO?AvgUizlOz6QOG@7L2o^vMPwEWPMqU3xC@Cj&ci;G)|lB+ zdhA9|F;Osm8QS@pdVWIN_ltSQF$J9>Fv+KtccM9F75{R2Ij@v^xb@xH`iHm`F5Zjv z7N2HS=Iy+2?dQ3gaGlYwB@tfpm1R6vCW;?W^^xCd_-$}f4I;7DGd6cjsmYk~J&}p4 zjRkp<#7rE{hwur_IP|F>fKOoHM2l$s^U%t@Tb4uW^tz|?mou!9D7fn3OTsq;~$6h7ByfAoja)R0y-y@&FnTcmf8}-rpLiL)(G$K2Dzp(0j76@quZdlLG zZ|FVj41cd#F(2OgB-5j570F|0TdqJ{1C8M&Hd#8}rhS_HS0 zD#LldQ%UAtvMx@ao+z7g$NW0|x|ySEz!UM>k0T#4d}&VUuv#28opm^+ytJE!H#v9r$z=|VfTwQ^V~5DvuonLE8mriteQbe1~`Q>3^N9vvJm zlpajKC!7BXvK+2d*G4(qa-*DiXR-dl|ja^ z^wVg&O<+X8)2wb2z9w%L-MZSiAD_|Bj<6sbrXa7d@ZYN5Kz5|gsbyY}ubTq%&FCaz z!*D!2Njo(%i-%mrVcwM6bXNC(|LWniYd!2!BmjNf)*hSXKB9^=U zNpq_C7{iW<$T~vn&6GR4)r3H8MN}i3e>a2Cs`~|m6JJFBb$QH>VW*$Pi@8(O^9ayR z{_G)}rJi`_#|GiM=1GqM#=7~3-E@!ED|OFyADW7)^Y+TwjRlavWE4*QJ5-dr0dGF9 z578L+iU#c=$)?5C80RwWxyq&-S0a@CeS938JUubfrEn6c&+9Lq?JE#VlztTEJmxi?0)_vL(p0c9ZjPhb#YZF)X`pp=9Zm<;B(K$1_{Q`HM#3Y z2YC}l(87;Q2#cQO$zheoK>}3V@?3{se^^x&uVv=~yG1u^vokFUd`uTQOsiez9(rP? zxECJ2pxT(GUtadqMm%Y_7>mZ=F0Dj+v)C_24U=k}eUzZa7m|DrnEfs^{y3UHVI|y5 zs)K4Fx_U;p7bfTLJf+Dz{0p@SQ}0DWDmvJNcL&h$JSsos%>RgU+L{8iJQSVYiXb{- zO&GW;_RRg-?fd}b`Fue#DVotnZg%lxs7Oi2=qOh!Ak7B$d%=`+eo{Dm3HT!YD98DeI&?x(ZswOZ^fy62bh)1!$`=1G%Y$q6^xe^73bcPakP z^iU9WdQ_g!A;~%0{IsxaJIHfyvysPTeBcUPO+tY=+fY+7(4nnPth_5w68Df3*dEVj4 zb>nn{eNlsa_17o?+yZ-dL|Gc{0fm18OeW?kLRm7u<0H0;=yD;q0v->-F-fVinEz)b zHPr@HH~ll3p^`Cc&_@_`k0)W81Pm1sze^%K3|Xgf%8h@a`SVq(+33{61&>B+!z3=Hq?sT)=Rwbg4@I`%@2r4(RJH% zT&l0enZD#8S+Z>^Yf<~zwP6kVl*n9jj;!I*2Dx(AG$*t@edv6!%kJ9F0 z3wc6{Nr>+%1Y>W8ue_~LUxufKuY?N670~-2#!2{Dlhmv1R#uv*lE|V_ot3)y!{(SU z`$1LBrC=+s5ZOt=BR*p>oto(NWu18$0{ME0m=^1CJ&h7kEv@{+nPC;9n~<*C*DHib zK9%pI%=v@Ie905M?Qv?upRbtTMvJ9g4sN&EdeN`Qj@8_GM|$dl?wD?*wo*L64>BZn zVgBpiz$Ci^LKlX=r*OZ9=s0Q|+FiWqnz!`A5eYX~NH!^&Mb!9HY5009?2#Z?BTzs5K;XFzO z+|W-pt!mtFT)gcIuemW=1b)4`>L)#Gb8EN|cM<`B#^38e8{9$RJ)_A(OZy8x5)>)h zephzsYfe|6GnOuu`)}^LT3OpB^vypk&U;41JONkwf(*o6f5hVAeplG^Hs+iYd_Gsz zaW>beXX{f|*3mm>A{$HKed7eo@M`Oh3CiSx8flq|D;DlKpE;lq*N;ApmkcI$dxe(z zJa(GnDQ!E)b=SN10A7nlL#(?(m0kpM^$oZy)>cxY8hfB%UWF;?#<*Rbu>L?tlFY=| z7_L2DP@k#D?ERJ4u(o$&@5snhTxW?;Jwr&wnvEiG_k2F+(GyY>f&N)2}^*mAS z9EbNajmKq0dmAM)-5rhbEisin+}aa@xW-zlLF$#M&puh;m4`5vfz~eB2h-D^m5z^4 zxI5dh+Yl;!<`04Gk3qV))fLqFvAcaMhP)#tSEwNA;(x?Y-M>yWsA~>@)hOH9QZ~gi z6jeBF%W{(!!)D+>c#n9${IjY=A}Fl#a|OPYU>}>GacOR=`qp#lBjmmLikCz<_5Fh++~j}V{=sf zV}&CSo1D@JWoPah3tJO^=_yYm^68f@od%|(r{WRmcz#RYPD?GL;s|99qB+&pkn!^~ zd7imH0YhkU{xT1EV}>Uk%N*Rk^-b33!HcwlT_iztQBLnRiv}iBT<3?2{LM1NUz4AL zjB9L>S#gQ=?*`*W4Uzy@$=Q3)FuqQ1O0*y7Xo`&~3hUh^uQwgX;BzKxe6D=U&?q)r z6EKRTpfK=XF7bTK?&4S9aU9gPV?tTko&J0ni~05rXT_1hE02qDvh;bDT2&|@4DD=` zZh$u4_uPo=rg%UOXZPx7;@X!2cAXTi%!raYV^P0DpL;+w5(jsW{`}QfgT;!`lypw& z^L&`ZDGSSdZE|GG*TII;DAx7o(E98znMi zNt(#J>lR)n6Frx!>01=FKH#I9&Rzl8V3BhaKVKE6@XL&M2| zZ;1c{jAxyD4dg8dJx~6SjuVp9hq4gu@zso`s>O7V{2JziR)U2^wNw7rXX+J-UA1Ct zv}w0}y{2amYDW!Wul-RJgSDgJlb06|$J3v^VGdXbjKe<$ zo$au&*S3|=pQ}DDP&`g(8(BH4n8RTs)#Q`3M?jj{y*Ge#eqv*#Fye1J8E052kMAU} z=vUpY%da~F=q8$<|LDlsy&A%-=8VST@~xuZoH8YC+pL6;M2eZF|Xxl)@OR@}dAX=Q%Hf5Q{*L~yrGbx8=&*ISr3mmL?vV9HsJ-)aHuuLoO3&x~=Bdx<4Cf+{g3O*$ zx`+M{mmE|qs|M*xLWpElzbU((h;k;u-l38!3YhMKdieX7wt+nBSliLBMEWlzv#f{XxfK%E6^}JTsL}zlGGZsO#On8Aor1 zAPV?|wEwEH*2v#inPVDhvsIC%aSVaZiAtZF7-xS6H~)}gNx5Kva@>?CPd#@V>Tdqo z5Wnp9FBxl`_$Sw8l;r5x!{;rE54xw>jPuZ z2ud(=rUEFv-k+WCD?C9a-XOW`s51_Qs8wS~Rb2LnIfs>#%_Gs#<9 z@3s~D(tP^%xiRnaUj0I&ff28F z$(*TpEtnHd(KeIZ_P9h>$8v|&V>Hmd&f^(-LI){S5pTRSP9YCftiOVwf!x z4ijF`mxVxq_tBAJ)LW%M%P3NVC#|PE`PY;;!))Q7?;bot*q}~vt=R1C^_#`kkCf&& z5hudkpxk@}${js(ZY7kuejZ;Pt8D~$TP=Hs= z{OySkNoLI|X7u{#fW*Ld3;3#OW4&1))!`Us1iYn9+E^H+wQMcH#K_*7+1Z$@(N~_E z+|3T_eie1|EU_DV&%&i>J^_SN!NafZ=4f7(fe` zfD%Ufi99U)V8WS>QLm8OPSD~Ljj-!fcgHx*v_s{%mSPP|jZ@X9K{SlYSx(L-9(-wy z2@;DCGEISEt)SYJyE-_b?pX7qwJ2=zNw@m!1O~sTzHbasKTqMSXS|>jeq>oacY&*J*NaGcVZigq`GP zId3#6#)Sv>259Ul{5(e0r76y;VT50Cq189$T@LuOKNx0OK9~JCtNNDEM68e~U+pCC z6GfENz9>W3xSaGN1!fqeQBu49VAHeMM&Ql+_2ZcAHmehA<&r(eAGUneDY_pib1etF z5J18MlQP#2DZFG(I9W5TdN6j6sIJ`u#Be2(vIlr53+ zJ13~E?n@yT_Kq7qPTQSzNc2|57IG!?#i43XFU6knyHloa+<+=uWt&nwK<61|EI>56~-j7ju1A@Say% z(pw$|DuC0Uf`Y`gKT2iq-8xh}9*ANx`q{Uv6^SG}AY%OZ0#N8~C0PDhRQm;F5#+zT zT)dLCstH9V*yY-c>(9Tg=phc)(TGITX-4%eKe79}tF8VaTB#bXYxct5hq#5jDh) z>j!<(ydNtpI2U#&P2urb${+i|{&>s?jZch@L{tFpx`&4GY(dPYW)aN*U5D8-tEQBR z_^$H><*MrJgy^Z78yb1NFRhjchy#y1kiyHiYle_zs*}RihJn@h1&;InE5Q><$y1NG z)lou~Qrq)GS;}z1t*wB;oCXLNjG{mVG6Fv3G*QT(x>QWHH*~xW)jsOHb?aL@G0kxz z*B72nw$LzmtnyswVshNUdoJ@sWg1Z5_DGCn`z>4&hG~|ZWpkQX=Ipc)VQ8b2>y2K5 zN8FW}4*G7>_9%cs-w>OkOSkHy;);`jJbYlpV->BP&St$$rs%5~^F>n1`v9%z(Q{gN zdC{887Lv*vrs$tA$2Aqcecv)BHG3hOPn!!${S=PU6v79iGvBAhEiBdye+!&YE*s8E zbXFM}^Y}IBIL9ygMfGpQp}_s{^#Fb^S#i_VrY7Na-PXW2Gckd&2ftQ~=#zHVorL{n zlqiQAGtePEuMmY2u zsI&!_S+f^4_L%I^O|z&v5aPokCi;>Dc#`j9g%xD1BG~Y-x^W};Y+M5yba!dJ3@+1)cqh>+hh|UnyENY3JEbd{(E_fR6nFiOq`pIxY?;pA zy|FW;-D^zVWcRlE$wnJQXlk}?1E90}~fJ{ojEdlbgPG2P5oQs13Q0IvJ zJ)HkMqW&MLKx4sa&cz`J%8CM5n08m@*F52%$iP^ELhywMXP?L8N5UHEr>1J~chF)l z$hvBU)wM;0Y)w2Xolf&W$&S61Qo}?I#m}jy?0h5(U+A-2zhUWfb{dcNpTFTxe5y%( zSA1~0YgH%>IEY)$d>4whihdCOK7223D^`qF>s4wZ=QGlK0MQ27t}CY=^oGV<`qP4D zi`trJ*oS7awIvzdRy9O-3a(MNyj>jC59oKZ|R4n&h5&4IO zgI)Bx0;2#Brj4&{IMJMg?{86M+%FkE5x&e#2jC_da4*ASKdp7UNoUC%?rILOCmw+Y zNu7h*)GRmiHUFE55w8;_+A7`w*5$8jqvj(oaWka^8@se(WWv4Rua_F;jgv#ujeo5$ zuMTIR6Ov=yg&4Z7nNw8`>7Z?M`aG^>BfM za9w5!Y}#2>rqU@sbx|=L)LlF+k;$~&I=hQdzRDs%K3PU@lB0IB4e*S`Y`-kmJpL`^ z&n4|BX7|`sTu6Amwe57fAPd8EX+c5#+e^219a}E=enIE_72E?m2m0?8i*=ea4x=ix zqQsfhV>lCP5p8R|hpb{DbYIwCV4=C#c<-tSp!G{&x!8@rfqua9dMg?W$AO;dq6++zfYd+gW~iuQE754cN^mKpJ>32S@iDV|I!?_ zur}fef*$9lC5M3pqvne=xB@~7pFrhjTI2uYcM?WX`o9^AJj{dDMVPP1b}Wgs63wQM zYfnlfuS2w1Qfjp9npVacUU`A865DDjl);a88Ijf-IwT9jOngLBKbhz=IAt^t1>BjP zZa<+l-JWkgzdlkGg6q8ufiHCQ~<)R#N=oF-ZQb&4v4Q%$0(VcM)=INiPedbY=U;r7O6R%t(LMX zL`CgqVeu76=(@IIY5rG&6bDw+*p?m&!})2q`aaFWY7<}oH%EDauVaDDHN~|Hm%3s1 zgu>AnfKNr)SwI&me%@apOSw4QhbCWC4(ulG+u-Kgkd5xu%3X@8Tvq%TkLu!k(=Jx2 zCjE-;rhM@sj#qIQ%kd?67A~A&;MTGqJ#_mUwxKg^*>p;`+(05&dcGtvDBvI!Sw+5j z3DJRqj|kUWXx@bPX;fCvyw=mn1hKPgAlCUP?`D6(Jl8@#xhW_a?t07;bm4Q4ou@X8 ziq(&f;dnGbhuUvDiCow2^m2b|ystB5EBB46r@9R?wU6vruUx#d47+FjlM*;U>sPn6KWJ?-Z@HrNZA^7w|OK-k3fST z>^8y(J4~3TnpxI4?LC#^WV=~0^(>4D@d|#2-^r{ML0LW~7y(qI-oiwVzO-Wc#vkBRfxQzfdtbU@J0c%o7sr=)l_C zlyW?6@)32i-1CXV;#;7yKtW@SlCn zvvXRo@!MydFp>*!+$}&I*n4D6bPsqTriP#q)III%8o})zH#-BwN5`{b=v4plyQi$% zz(4xlidUk=HS%Dl3MraX+t?+YPk;hZbFUz_xL~cb`Cqn9o6G&sBg55)xvVHe!74OI zp>bXBm;9FMcq`gs-ntN^jAi)A*5|jM{2R)_Jq%QS?~0A$@)u?E=D!SjTjL^`w;O^s zAe8tDD-0w{WxX#HfzJ`=*I=a?f#L!8yY5qAYd_7XyTTQC%3|tq05|kk%GxNp?F*aa z{-DDNs|q0dX4=i?!lhWdF>WNASGY3O#gYH4R%N|r3=hB^yB5b`ZSR@^NO>Xnr7GG~B#PyTWfW7eUtkT>*2PQtb(^3zi1V;H#RBQ;u zwwj1ACBP=L2Nk}G2W5WEZO3>pCsAP#Kt1_>>axU;^r<*%e`5s@Y*#^qd-1D`SVXkT zDEmA{bKML~obp6+Vq~9P88zrC;BP*IfCNgtmU?Z%MVcf%--uQ*45MF=kbx*HwMq-jOd-z zTy@==6d{mzRbjZw0)ZOxA|o1@TKGbb3FbDZBkZNOCuCSkyfr=C_feXYAf0@b;PcS}7!@(*m+m$U`m5>%QTbeV9* zm=iyiJ7D~B(J#2_`I3TySRi3hg|lIZcrihj>-f0TQqi90m^)8ZXF?hqZWps(L)>V0 zVwGD(O<}W?e^RXCza)9S=(aM4bQhU|%Wl8Dh~~kDD?p^j#nH1--9Kf)l_yNwaSfLL zr?Rt-i>h1u{wOE{3P?yuC`flnGZrEs9V0CvHFWo&2uMpeLpKacx6(cI&^pYuL{0>hrQ_gZ_c>$=wO_gz=ufmW(3lZk!UjE+)U|A5v2O_9bHV^Tzm!Hx9b$oQr#Cl~qMv}3ba>|0A z>{U9K>CF9k;bT3cf5M4;SM)78nDsuheE4Vl?zJM(Bb~Z@L+i642RGVabMZ$g8t;w9 z${I?U?qOd;F{4Sd7M$N6K8m%_x}So)7eO+^AhWamJ|N;fsbZKY)a$Wg$#L(HJhv)0 z*XIu>>>mv)6eV*99OK-T%S&-slpiq{2x{Y1+F0OL+4oWRay z1=umyM!usyB%)G#2jati2G4?(i%8vZy`-^w|16a5mYNjN;SPLOLEqf_cy&v|DXEM9 zrvt3?TS*HyMfY#O;jMqVUi86dV2U1ktEr_^if_LGV?`xz*BYhn%iRnkl2yQkD>wyq z&mS(qh1Nf;Fundm*xSKYZ7Y0}j})j`ZSPN@p8t#+xggE1Xu}ebb}fAZ{_TU~zI;`m z238J&ZZ#&Te(T1tOIOZAG^`v!n||cRK9=F#4U@hEq#gI<=4OX*4(Z0&#`7)LEREFw zK_xZ+dro(#B8z5io+icGq>7Y$r}+)=vl%#?zu&uAoHp3vbQ^gS_dSA-VuQeof5#Hh}Uk*;~j$GS!zEqm1usu*d?l%v6 zL8$(C`66uB40E)WKknbJl0LRKcN%x&Nceis(jG!|US_YUtmBl+&ARv-fKr`j3OP?u zq%1X=H!p}=oN8<{K9bFybd$O#gxD85Q=gN=6?tV;^Ii1fx>gIcV`VOwE!Um8W>{!h zE(7a|VN4j|3QS!$RvbG%RTG>!_qOg)_kC?$=%ahN^d}OhT|PxOTcg=}i`CRShmMpA zKU_eQo&5C9*|>E55Y-BXg;m~jcKc@J9qqEz-)oh?et637;tm4s%OFC++BI!AF-oA? zLw=EmJa_l4a_@hSo2Tk>tp<%R?DepRxlKu|Gx@#gC$Tm*BQVBEtaO=$@GVj2});E~86(njY3TC_f zT3_KyeO>R5*@b7P1kA0Ll6|Ne&=iBn>=I-&_l)V@QG^)zDx-1gixcu@^NjTJ#w3r; zvrO1BG}NCNS1%_TcpKY3J11Ya^Kc^5NMb|ehad!eG=yiyNwyo-C>kyt!^3}AFc^A|Mb-K_T&KJ z6THhj+?(18p6o}7I(^TO1Q%Wjo-|Wuc03t+Y*c-2-NK5?qz7EOd_`9l^gG3%=40h= zhbHIKnMqx)B@y4RL@{oDE2V`Kd~S1JD)L@FWQ_=-w)cLp19@x+4HA(8l59CzyXy*e z67u;U3GOJ{fR>O~5}!MM`n)L~C_lZdm2Txnn~4l_sRZA@lzhnTtL)(b|IV$)R$Rz7 z#ID!;Jz8RVI>p%=3Ki}5HNeE630{pQ4o`8LfATzinvZX{!3i&v6aRH?mhTRY6k5Gg zVYmLtbL!24Vq<0RdmpV0diDe}zjO64sB0qD4{JHFE^Qq#;3SX%Ssd5zHr{N3$D9y1 zHSH!fwlpMetiDW&1@ZKtMU5IEp|W(4yPm1~Pv)m$v8OY=Sc*vqUe7qyAd}72uZKa! zLFHVcV)Ca23MnQo(zkewsFzb44-e06|BI^%Ap?wLsQ;U&eo3sVysq2N*_yP!k*XMY zc4~8;v>F}3j)y@Ro4k=7K||VLchVZCxPDTI;GuM}m#p;IKq4YoGp2SlG{%d>w;Wq>_@1JFd915}p34 z^0TZFtNjnxp{LxTBb5q@)HJ5R1YBA}Z7X6&YJ}|=wR_YeVs&byeV3n=4KERdfYLSqdC5D=L_+O-OI(@fj@jEZfum}? zEw92LlH4k{A-7AK*(qtvYDu>NI_`3~s{PQa^>Mv2w=tx0zVEQhKQ};CdD;D};v8b> zbH@Dc>RlwU^UdxzEJrZPN8PZS#Gzz-YHxkDf}u1GbykxFlhkmobNk@qZ#fCrNX!kL z9FZi`I=myT84eIuGCN->#ihHm3G+I7Ze4o^-@5RXS*l#sZo4Q?{#qWlWoxcCWeM`A zRF9R`hL*6JUl94U7`Qp1-q5f%cnpG-@}ZHnTlOju#?3r6MsH0tQ5W7@T{x2%bsBBm}O~mpaiWmZQ{=mFC{~HS2?w zZvp_f=-Vy?cek1bl6iUa>KhVF!$f%wdH_V{xS~SKZ$P-OBVTn4!%)2YHl?O>fZ3D4 z%)%$f#pQvp@N7xf_v=dzTK+LBAH3g5V`<7>#anj^HTl?qy{p)l`I<$TLZ7mMW*mI) zmCZc5E5@ZD19;E9+a-ZVkLd10U26Vd!;Ua1mv{Lrbr{psWTu&9VS+WrJHzjKW6bLqS4LVscIdUdhuAsAsOH@6S!x3uk>lRJay9KMx0J;mA>tX;%4FKTLr4{ zTaOYhe=x?cf|0hP=O@XG&tZb2Fgp-vvih4OaXrl9>(492h)wIBd{s1bRi-YmI@{Xx z)kXQNc%a$M$2||H{ZtiEu)xN>Z&&iVzc#G%Ct|W=bqRS4zRGXB=H96{YMcC~D1>`M zQyDLp=Z#Fht_t5Sr?Ww0PwLKDUABythQnmjM~(BL(NaOQJu1~|QmHo>)i34sJFX-1 z7WS?W7ia=4F^c5!8@Y!t3hBF`Z~mj+`BgmyTO|thy7vZfz22l4Js5Wmii%6U8V_eB zh^qEbFu?YpoD*z(g_S3jjWobxEB}s97%T@8L3$Cnkm(moI3NkH?<6pislc@DBT)XF z$>Hkxcy}q9sk4?{$^v!LNbl1p>if;jVZ9eM?+dd>KE&1aJL#=Q^*6{J@hMjk5My^M)yGhn3`mci2B>);OqEgHy`O zO^p{-AE_12ua<~}-o+QEcfB3kqt#SXe`JeQ`0?Yb+w-W!ki~|bzCQ7nIv&eg?diFC zO~}aOagfa23VY|*Uu()H zOT5_FX}HN)!vqntEoqvx4lK0h+v+_9w})S1X_0DGb~JaF7EkweopZbE)q}PTJ*6(C z^tD_pcBVtP7Zl;YUI{H3rABduIEqX71?ENtc@sw8{=6+*Y1pUKJg==Cehj26VU?ubjllF)aPuzVs^^po*e zo$sxs8+F?zzSF0%68p;Jr6gXI%s+HLy%q2gyPf|odm-{?%T0t{ys_rssiw*>kLml2 zg(fDOR1RHQrJHz%Sy8!DO~8=FTWx5D)wihc?^y1wN4H^zY{z;XH2msg`Tt-ews4E%A3Fj6TpZtaOXXJnU$GI>-ClsOi@1NM zB{lE;oOP;mn1p7b+Eww#4{(&PY80pwO6jR1zF*FNt2;A-bjI>w0PQ;GP6JH-Hy}9Z z3;H+UPBqR*0K=u|orq6r+~Q^>UAi+DnfBHz2hUTqPbZ6J4ZVzcuWfyl>!NCyz8DDy zKDe*DJ>^&>qWai*rbi~&8OXKojS}zjTKX~I85~|@2=JY1IP8PJ&x+mvk8+`ZbN+ zueo!CS-xjg$85%4qPutAJr}xQtLc4PijO~c4WRxKFd9rRmGp;)S<^W5|*cC=G|Mfs-9kF9jIIo=3M(Ya+8!6s~szFn>wr= z#Q>dd=CvYP$u|~lfb$MRcyvzudlF5uU*4ml0_QCiqs0ehczCT>wwl^`^Dbw89g)XO z8Y(shYY03qR5uD#C>2hSl1e{|FxD8a4&`?ZPg#wj5!qw)8*CAB^y+D|SCxzq!!H7mB}*hE1KWu1L43YUFal*Ki&htcv~=&zNf>9sgweP^8JSf4#XIM zuo1Yz<|3-Ds5QHI-s_A+us-4zV}LtOMG!(^Vx@UKuo<^sH+X4JjdFO}ZK_rE=8{Xv zFC7|NH9i@Iep>ESv0LX|jvzOXb>EcIx_j&DmZh2%Y-o2X!#gTp-u=Y#M1`0@{#HmZ z-DfWo{8+VMdY6pi)Z zZKg#%BibBu7NbDDxH?GCg-s5F%#TGaEs34zRvjxd zl2Ucz>HHNlUq!LRF47*Bb+2RFP>VuM`2a2@P*iB79(HEB*K+3->yHn%cr=0v=$G7w*nYS*w-hmc2rkpc!5-x6Yux%fe0!ImIPx5 z??XXK7NWY^&BH{ll2KaW#+eMLbBRp){))iV_l2G(qaQEBj0z$ru8F4EZx~7ocN~%yljgl* z28+j29SeQj?3Pg9_-C1QiSQDz)C@p6Cy#krL!zUPT6xbrIn*|9H0f-9^5rBA6P+AG zfUpA@JqI0pNcUsLbQch3e}vz@TK0>?r^Zdb-zR7G4{RRdi7<-I1AqhM45 z*A#O+@+p#c8ogL~rr(MxA30??f%&3p+dix^h}!Qz zBoR+!yBw{{h9Sh|p9XW^sXX+*5~*_=#fBU%h12tbZlov)=0Diho@@;>^v4FbP@2ta zd4S0DURgG#ikmU$P6L3Fm&DMRq6R7Ew}=p5?N&qi?y4U9;FtE{1igd%YiQsss>hSL@@QQhj)nER&mWtLeU{}>qQHW3xJ8*(Eg zo2n-i)x(`3r52ydchqk=(Yw5;S2BAZq_sNg&SMb6oDd z=F49Ev!L+Q_gk5x@P-%wkar4PGmIW<*;3EAQ>3-P6lD?LASfKKoy#_R9xlg9Bg2*U zZIk$2CYvth?C^7|`(M7^NGBIJJI2;nzMHBZV(+I$++=zDV@>>Qtwv01g2j(w|AFT1 z%V&hd#Rs1772WP?Rxz3yw~=2RCcESDT=lZLR%v>&QG;*|BBaXmP1$NqQ@JSC$lEu= z+`Q3qnk6{Bp7sg1)h`~4+IaGc&rZ9uWg5b_G*qAW6&F*9*SDm&T5>2WN|i@*b?|9- zGpNuocDm(c2!~oGY7Zk~k}XHl!|WhDW-GXQ#Mj_{mBl0=3?<4AB35x(=n~s~pA*LY zb@#t5D1XIH#$lC$t9}FC|G7EqI*t%(`^y@VpY{lcoct$tB!8pGs9d%!BT2k*f!eF z_hDuNsl1`xZ_ z--tn^qRHtKI1>QNmc@k%6y{=g7q3eb^JFW>!$%n-xhj8Z#&f+sN~qpTf*8#*9zv`p z7b-E<&t;Qv0dZ(~8Z;F90G$-fcf8GRCwZ_+K^vxi7Jk=6ztA|}cM3Hqu@vilq(Zw~ zMP;&B@J=Klj*6$BetS4|yk`7b!9K^zK10{Bzw`b9mk`y`L#JKEF$vRg**7~&Q<)w# zlcUa3nGF^FLMlZ3u1;&)db#Pcv`@#ejTJe!XwD4-&O`~r@2XHk+cR15*YY{;J>CpD zqpF#VqRiL>CD|0))#Jt545X;c5b{mmtZ_9aHQX6d6>*P~sRj=)pNKw>6SUR*1P*q~ zemdbHUxhQD&SQ*rrPHyJ>H_IcG)pPU-Tfag*V@bfH>rGG|Vjs}Rq1lANrMsT#t)!*X)w z8Djq3(-O*{z^F6%xmMb?XwA{GUpc0I(n`#+g6R=c{eIj@7%w|kXprli!X1m?8M2s> zWz)tlExUc;X`MDGXG@egYM4LER^#D091oBAvtdH>Uk6SIBoc%<8rfq_6g6_S4k zCu*GPSu1|;cnAZT1DfbxHMPy|ah)bO6#$)IJ}3q+huyF>?;e(DIF1Q)gA|w@zn_yFNA_MXv`UL4(ofEnY}4}I~|Gq z$ai06Zf_cS)1O?7gQMy*=vH-AAI^W3OvM<9_pDZmSPc-C&6f{=kGOG#F;M#q8?ktT zjrimN$5QGk(qntayV*z-b@aLn5lzdIV3o#lNK+Q+&@;+^aQp?Qd5krw_92r(q>J|T z^nboq;ZO?jKNPqIucMQPc@rOIiiB6~%e?g%OzQe`{F?%DvYbzXfgV5qYwt|2oQ5H>E_YS(a_p|xGvt?k zsBct)z8bnFU3jmi795ZF>tGH()|Mq8z9%c0S{xD^dpLo0>onI5W~|E9h|@3}{{G!p zyC@Q<{JxN4km$9HjOvQ+eb2?w{XQ^A_b4dZ@#oo)%SF)M*%_~s<7M)(`lx&sEOm8} ztuTJXHTz1Jm)hZ}pXwcy5xZblN%EJ&v2X;u&p%&HKyX{>c}^SDe9o=~zBQdsWsbv^ zylMYm!Ax0y17iP53g%fy2m#mY{|9EO3{*VbJ~;t$bp0YlS*A1(*vxaYfaz077)BbUcj}t_fIrlsS zg;`ATNHLYWza${7DHTiv>(Hs6fpAanA@5bGT%OxzsXlWleyrd74B(vduzt+DOS=mqy z0aIz%BM{?72EB|cGvoHE&%~J&KYy?swz3f7+vC>*ubTl}3@K;Vb)@%ECGawFtwp5!=0P7&uPJ?-JDfbA-_w>c6USi%qXKm&T*H<1+sAuE z#MH`y7)}GG*UjpO!9#W*EtZ{C0Uodd*ES|kvmcBkW5-R~$oiJB8NyGj1Dq^C!7Yg^ zFuV)6SSlsFG?2?49Pg!-Folh}*tXA5eSo9R>7zN`g0S}yvm|1l+SUwv0{w4+$$OI+ zpJXsU`;n}<@x;$ZJ5uR1qDd%vZ;4dD?A<0jCV6wGzP#-ocBD~m9yPZ!`>Hmph+LWC z;6}@fm~BB_~66c!uQ*8vyU*43;d* z>}j*vfn{zC$`+jKM=sk>AHym|<}U9U{p1(fEvhJAN18`|B$#c$-5%FK=Y@Igct9+f zyR3xf^azw&Q(oF)HiIszU;iBJvR1i&|9W}5+r~u1Mrcr`Ww#8y6yW=E#Z+&D#}pbB^0<3)pcZu?&=1={N$zm2K+SEM{4U@GR|vVxmNU+ssX|T)zp57 ziR(mlGvn%3bxu!)qDXV5R6mO(iw>zge3+pDSBZKdG^{E+BW;O>mHHB{$nbY~ztWlY zF69$4Ct!tFfHP~^XZhr^Ctu>DLO}`8!#V9;2;baN@8Wni*^ii_A9ys!<#&D#$OXd&?5C)sAb+7j#nF4n8*yZ*zs+5TVmQRE{4q@1 zkl%o6Ze+{kfEv6oJgH9hOXbmpEfB ztAeGFCMKPsjdbJ?gH}eOk#i{qH8}Ca%T9x!ozYM_l!^0}0*AY>UyYEuu2M5JIy=a++DE z4GoaBed}wuY&>0os38#lx>!KA#%NcsPMh2IE`0is`UvK5KjXc?#DZQ;PVP=LG&|m` zbV6%;EY3edv|NK*ZEE|nPw{lCO>g~2w*DuQ^yfji?CSz^v^Hjt6v%H*^MJ;LuifYvcZx1S~-W+}rXi~W*6@ApR z`+;;=r=_gNu*sqP;?2AeUidNuJuDbgL9|+;2e1Pz$;a!Zw1n%9=H9* z3RaAh>^wD;Q|oyCn!9f2B9nxj3PhzoQOaFQZ$^-sx#%7aKqj4QQD#j^)T(|Say$rT z6H|q0Z-oCeD}7&5692)XjY(5oWu=}zP)WOtiE9)`CXLYnpL<9SuqLdPn6RE2FE%n& zA?qh2J6<&IdeAiqp^7ps-ed{J^y6-ZS#?O|Ia*~%cL9EUlr37 zB#KT7tyrIsep$5G_jPPu;*l!>TkF6SS)U#AMKKlnEV6oAN#ulQ4OjIJmEr4Gs54ifB+oOIrwxS^K0z=gF zcWMVV;3>j&ceB!?{G1HLBK=7)P=%QM(JZ?c)0sHDn9LV!&BjQlGq;l2e9!weqr!vP zO+DEpaLM-Jp>);I+zIZx7spUpVO!B3udFwdqd)V1{%m<|Y_liLj`Hce_(E=Tx~W{- z{l?@7YU^IU$d@|37Nu(l7VU4U^>Th=mf(&Tzlko+%Rr_SG+8F%h}%HX!qr_RJ7A}n z`-3t%VoSkX@3l{=YpI=n$Xa`RM(($gnu@s#;ev7bV!gs`jc_>DG{Q#3)t_ zeVVlLi!joId08cEjv0FLIU>5fRc8KP18Klojqapq%S-ifp6bi+lqa8toX8o&Guy_R zFOHccku#ay zr(N&DL_aL_c2Shr;WL6OMAnq`IF7)k?0UZAALJ|uxY9_x!%mn2+bB+$h!^vN^F`|P zUgh1S{XPQKhCA3CuKtL)-?zQT^{$>~A#UypEEzvBTFXQssj_5QvW;_1ZTM{$Eb1@m z$$8l^_ucJfp!Ftu{k*g<&`9D^1YETvdp}M!BfKUeO$&NZ_sE|f@$CmUT;(!jGJ9|H zL&<`-jQS&*)pSllMM+Iz>KYTwF7{b14qW{=iC?M9zyGFKu*cP{9fu?8|5Nn$uV*rs;5m;jB(4egNg@4&KanNtT{8H&PUO7AWqXaLOq7%w$jR6;;b9XkH zRFbjqMwxVbl0>1;McN<@-tL{<29@W9+Ds`l)yj1f_kR}4j`Lrkna&m3Yw8D~T_gXojyWyf*xHG$@|W??`Nd7BQwhHTBDv|Ohr zPt*OEgnC9N@@HOc+*{tsJl|Wn5)`YaVvNU(KIn0(G9D*PM?K03lkqFEpRMGV z7BIu`m)g6YTA@7w{d292wj}X^hpG?L5v5A+7MGmgTqlJ%9(5p(S7gpEr`6@C4mWH6 zi{|PtBx^q`1Q&}k{R6cx|I}%!p$CZesfqqO+B7fS$!I~g5J}Urf~8cezZD;?hlWHl z5<)e)i%lNvCV#}gafTRcsX@qa;cjD)sBvApDwB$y0RbOkB7@_9lVW+@-|wg$e5c5} z*f5VN-%nu;@|jNli|&CP5-gQNLMz{|YAWY-goS4^%MTi{RL^ahu{Ewld_Nn>yeT{t zKiMQ^`5Qp6?z!g_q~<~9G7N6Rs4j=YD8NptJa4mHA60l@ZZOM{j2&ig$p+=Jr zjyZdy1hiGBS_)r`mQ|;j*H(QrjeHHjqslONS$dFf4kmI%4JqP|HkyH?@meQ_T3db1 z2`B*oh+0eTY^0Ws{24+ZT2aVL*D67 zZlTV46yS2c(O^ax{dk!48w_V`w2Hnp#`1wS8%Cu_HK^8WWWQA5V2*7w=v(v^`4bhNfVi1pZPY z(PT|xk*3gFd@$lrb8W;cIV?0dU*#@$BD!>?iSfSRi?sH#2^zceNjaz+GAmv|H;JeY z)8~a769z*-soskEUUSCXJqcw)8}xU>g7W4EX>MjN$VsYoAou*ZNVMxn8%b?;{N6AAc)4K{{jSe*-4|4xVnE3|-6p4IuyLaUEJI>I)1wfIJR7-FE4O zG3(4^Zb121(cLaA^-DJLS~9Eg@@-jES(tm??FivIZ^Kg6bsArgH7n!x6#CjQsT{?{ zAwd=mjVucTRW=w&>G*x{2`NTr={{uZ1zHSCgbTe_t#Bc}9hw^ZnV$l(T;YIa3*!P- zZF^-b?XvNIzl5HLTyZ;mX*+)GiIe5ra)F?6C%)BU!hZu^P=~gmKw`fE6mpah%dsQU zlQ`-bKloM0-y3oDk46Aj^nK-U2Q(3PE@8NF7YWS?lg(Bd1WrjCe>ejk{rC28VBz^2 zO#kcVME^^3{(L445KL-0JFc|yWqAX51Cz$IAZf64rA!He#hHDR;DtB@riFXU!YAoz zgUzJdp{$;4iF4Z+9B?zp1kH{8%tV0$YkoJzvL#`uLOQp*Pw*miZ~DaAIWhwku^}ER{oN z+Xb2QpU)U~Qyj470r3H$+z_ofjoKvZrOgsqV=6_8lJx}Gs4Ww!R2J9Bk&mkmR}YkM z+vXFv1&~;l#eRW5z*qI-2*g4Oj+K(5N_6R(iDD<@0;y|^))!>7*bfO%t|&HU!0a!n z|LnwW;L6QEhRvU?{*Ph9ebg0@cQSDSKZ$!%v z6i;WBvWY2)M^f8?95C#&dRKHCP_*KuUM=b%yI9v?Tjz9_wN$PnFP8j{htVL{z^>#9 zy(d#AQwHut3x=Gqyt0MpOczasKHFwoD)41z_S6&gy6qfS?MKf(FWEiE!Ec$2uJ(Te zF#D9+yYp!;&p~Tg^FUoh$W`yfZ@?ywe%NEJQdO}Qjko(7@b`=Aoe}@}Ia9tW7##xzI zSX`f>XF2jM=Xpty#?j{=(Ihpv_fPB#AuJoktq%f#tG>4y>_WTAgqhv~Rr`RUkxH)<4eF-X>ojEmV z^pF2IvrS#MXih0ru~51p6|sr648ma_8wYnzE+3wFyh+<@!f^5m-CeA;5M}3vo@-Lm26XtzJ>hZ@= zF>70SG6mfFXE)}T+el7T-O3O1l+v#qx-N_4=>~i$mXx9hCEO~^$_abxkicDpg=~1! PYyrE&I7$V8zi0jr48pnL literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_watershed/images/water_thresh.jpg b/doc/py_tutorials/py_imgproc/py_watershed/images/water_thresh.jpg new file mode 100644 index 0000000000000000000000000000000000000000..055a2f54a1cb7bfdbe16f1de8995bec5eee696f4 GIT binary patch literal 12627 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_imgproc/py_watershed/py_watershed.rst b/doc/py_tutorials/py_imgproc/py_watershed/py_watershed.rst new file mode 100644 index 000000000..e8a57721d --- /dev/null +++ b/doc/py_tutorials/py_imgproc/py_watershed/py_watershed.rst @@ -0,0 +1,121 @@ +.. _Watershed: + +Image Segmentation with Watershed Algorithm +********************************************* + +Goal +===== + +In this chapter, + * We will learn to use marker-based image segmentation using watershed algorithm + * We will see: **cv2.watershed()** + +Theory +======== + +Any grayscale image can be viewed as a topographic surface where high intensity denotes peaks and hills while low intensity denotes valleys. You start filling every isolated valleys (local minima) with different colored water (labels). As the water rises, depending on the peaks (gradients) nearby, water from different valleys, obviously with different colors will start to merge. To avoid that, you build barriers in the locations where water merges. You continue the work of filling water and building barriers until all the peaks are under water. Then the barriers you created gives you the segmentation result. This is the "philosophy" behind the watershed. You can visit the `CMM webpage on watershed `_ to understand it with the help of some animations. + +But this approach gives you oversegmented result due to noise or any other irregularities in the image. So OpenCV implemented a marker-based watershed algorithm where you specify which are all valley points are to be merged and which are not. It is an interactive image segmentation. What we do is to give different labels for our object we know. Label the region which we are sure of being the foreground or object with one color (or intensity), label the region which we are sure of being background or non-object with another color and finally the region which we are not sure of anything, label it with 0. That is our marker. Then apply watershed algorithm. Then our marker will be updated with the labels we gave, and the boundaries of objects will have a value of -1. + +Code +======== + +Below we will see an example on how to use the Distance Transform along with watershed to segment mutually touching objects. + +Consider the coins image below, the coins are touching each other. Even if you threshold it, it will be touching each other. + + .. image:: images/water_coins.jpg + :alt: Coins + :align: center + +We start with finding an approximate estimate of the coins. For that, we can use the Otsu's binarization. +:: + + import numpy as np + import cv2 + from matplotlib import pyplot as plt + + img = cv2.imread('coins.png') + gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + ret, thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU) + +Result: + + .. image:: images/water_thresh.jpg + :alt: Thresholding + :align: center + +Now we need to remove any small white noises in the image. For that we can use morphological opening. To remove any small holes in the object, we can use morphological closing. So, now we know for sure that region near to center of objects are foreground and region much away from the object are background. Only region we are not sure is the boundary region of coins. + +So we need to extract the area which we are sure they are coins. Erosion removes the boundary pixels. So whatever remaining, we can be sure it is coin. That would work if objects were not touching each other. But since they are touching each other, another good option would be to find the distance transform and apply a proper threshold. Next we need to find the area which we are sure they are not coins. For that, we dilate the result. Dilation increases object boundary to background. This way, we can make sure whatever region in background in result is really a background, since boundary region is removed. See the image below. + + .. image:: images/water_fgbg.jpg + :alt: Foreground and Background + :align: center + +The remaining regions are those which we don't have any idea, whether it is coins or background. Watershed algorithm should find it. These areas are normally around the boundaries of coins where foreground and background meet (Or even two different coins meet). We call it border. It can be obtained from subtracting sure_fg area from sure_bg area. +:: + + # noise removal + kernel = np.ones((3,3),np.uint8) + opening = cv2.morphologyEx(thresh,cv2.MORPH_OPEN,kernel, iterations = 2) + + # sure background area + sure_bg = cv2.dilate(opening,kernel,iterations=3) + + # Finding sure foreground area + dist_transform = cv2.distanceTransform(opening,cv2.DIST_L2,5) + ret, sure_fg = cv2.threshold(dist_transform,0.7*dist_transform.max(),255,0) + + # Finding unknown region + sure_fg = np.uint8(sure_fg) + unknown = cv2.subtract(sure_bg,sure_fg) + +See the result. In the thresholded image, we get some regions of coins which we are sure of coins and they are detached now. (In some cases, you may be interested in only foreground segmentation, not in separating the mutually touching objects. In that case, you need not use distance transform, just erosion is sufficient. Erosion is just another method to extract sure foreground area, that's all.) + + .. image:: images/water_dt.jpg + :alt: Distance Transform + :align: center + +Now we know for sure which are region of coins, which are background and all. So we create marker (it is an array of same size as that of original image, but with int32 datatype) and label the regions inside it. The regions we know for sure (whether foreground or background) are labelled with any positive integers, but different integers, and the area we don't know for sure are just left as zero. For this we use **cv2.connectedComponents()**. It labels background of the image with 0, then other objects are labelled with integers starting from 1. + +But we know that if background is marked with 0, watershed will consider it as unknown area. So we want to mark it with different integer. Instead, we will mark unknown region, defined by ``unknown``, with 0. +:: + + # Marker labelling + ret, markers = cv2.connectedComponents(sure_fg) + + # Add one to all labels so that sure background is not 0, but 1 + markers = markers+1 + + # Now, mark the region of unknown with zero + markers[unknown==255] = 0 + +See the result shown in JET colormap. The dark blue region shows unknown region. Sure coins are colored with different values. Remaining area which are sure background are shown in lighter blue compared to unknown region. + + .. image:: images/water_marker.jpg + :alt: Marker Image + :align: center + +Now our marker is ready. It is time for final step, apply watershed. Then marker image will be modified. The boundary region will be marked with -1. +:: + + markers = cv2.watershed(img,markers) + img[markers == -1] = [255,0,0] + +See the result below. For some coins, the region where they touch are segmented properly and for some, they are not. + + .. image:: images/water_result.jpg + :alt: Result + :align: center + + +Additional Resources +====================== + +#. CMM page on `Watershed Tranformation `_ + +Exercises +============== + +#. OpenCV samples has an interactive sample on watershed segmentation, `watershed.py`. Run it, Enjoy it, then learn it. diff --git a/doc/py_tutorials/py_ml/py_kmeans/images/kmeans_begin.jpg b/doc/py_tutorials/py_ml/py_kmeans/images/kmeans_begin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..526719843ae78861c7524b1cd200e9163abcbc68 GIT binary patch literal 3259 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_index.rst b/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_index.rst new file mode 100644 index 000000000..55586e86d --- /dev/null +++ b/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_index.rst @@ -0,0 +1,41 @@ +.. _KMeans_Clustering: + +K-Means Clustering +********************* + +* :ref:`KMeans_Clustering_Understanding` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |KM_1| Read to get an intuitive understanding of K-Means Clustering + =========== =================================================================== + + .. |KM_1| image:: images/kmeans_begin.jpg + :height: 90pt + :width: 90pt + +* :ref:`KMeans_OpenCV` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |KM_2| Now let's try K-Means functions in OpenCV + =========== =================================================================== + + .. |KM_2| image:: images/kmeans_demo.jpg + :height: 90pt + :width: 90pt + +.. raw:: latex + + \pagebreak + +.. We use a custom table of content format and as the table of content only informs Sphinx about the hierarchy of the files, no need to show it. +.. toctree:: + :hidden: + + py_kmeans_understanding/py_kmeans_understanding + py_kmeans_opencv/py_kmeans_opencv diff --git a/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_1d_clustered.png b/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_1d_clustered.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b10466961c6373e7fec233bee31a2e05967a84 GIT binary patch literal 11337 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_2d_clustered.jpg b/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_2d_clustered.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8bd36c5a3cbb8d35422477daa8e8b54e73209bcc GIT binary patch literal 10486 zcmb_>1z1&ExAvko2%GMZEz~wX`4%`AEqacHB zp&+B6qTWJ7C%{ApgV9Ox@UaLeZ&OoK-lm|SW#qg|OV7?gLBS%#!p_CR&(BZ8Ec{TI zSDcfNpXX{4I8;*?y?P_fZ2%z zcl`nW_`tyf z$Ke;9jzS|=-h!_*{Eha$frI}oR02XGViG!f2F5!~oLt;IynOuP4<#g}9!Wn|R#8<` z*U;25G%_|ZH8ZzxbaHlab#wO!cpez^;$?71Ozf+;_=MMQ5;HQhvU76t@(bQoR902j zysxeM*xJ_K(b?7AGcr2%X?$XG3bL@cw7jyqw!X2sv%9x{aCmfla(d+#9Dwk6aM2U%4%ek!K7msu!WPJEZ zU220i7rw7dLWzK<_Vq6KQVQ&YiV9Qai4kw%Vw@hS%Z<`khp5ET8$2%aa#=vuTRt`N zb>3G4rDO!}pJ`@|Rf+A2g>^zByD4$igv$&sfwYMHOTaHugk)b$>JaR+kNwH#8~gf2 zOXP(=f9VBC2(TR1q?lyC1cszkE`jFG%rlViDaz*CW1@YyQV9d8GzxCr)A-y98WT1O zzX%_#*c<;h^3m_S1VnGEUjhi^kza@|fpwY!pLxR}P$Pcyc>u*ZqVtpQV2__Ip@qP) z5XR+OJaxU;Xi{`=pM{8e=qdoBEDSfML#Sw{P!ZjM8>-x7gB6V z!+J3|R>d(rP1N91{~mhIE<)<`Ckn!Up^$qMg=+(DqHx2@On$gCG3vGk$gm;M?4J<+FE9S>#!qDa zgBu3oX;?;k&Md!$uffRNz66rT{s8@&`5!=Ug0cSx=*m~j{s{UdFmLz=>Q{EbP_Nxe zq93giqDyaTa!%aHjHa(OReQoDK6K`%iw@u^N&xus8kazn?ALS8ZdgDj)~Xyto*>R$ z0uv2yPj96mjR-H}8eal>JFw`XF8(A-b0Nz8yId5ppwKz?%OVue&5oU%EE7e)%DRA}N5_>j1p#on_ zh{f)ZR)3JR?;?u`%BW3P{Jtvp6}>6Ua+P>KT08P^-b*7aku_%v-9ECFAi@CtG zSX##NtCZ+rMb-T?mGZLcitslvb9BL)0~&zAe+*IDb~)ZL&4~GGsHwPs7wpd%0yJ}W?~-f?Bi`&)1MA}+_n~( z4#0@NyM)DVy?}6gjZ!~3g0C~bq#%C_Mq?vvQg`8fToLSbg)DxFG;yj~c-#+?J`1-w zp%74t>pHh@;a_#`s8ggjX?k$Y`jB8)|1g?iRM-N)!;@?6FkB zjMkBgTeD-F(%9JESG{@*t&kFoA&EkH<_cBWFNM=IPo>wjA?-~t3ZrgYCU-&Xw#oGy z9naZ5Bgq?GsgJMQKdU>9bsKDnpJR^ikqNCW?k|7(T)~yuP{@NEnJa&hg@DCX{O#jJ zb82Z-sn-orD*g`|{G#Wo7;}x}D^p@VOuLi2A5IU#>#V1ej9Sr+vE*8HJ2d;tbh#oS z_|@>Om7gZ=^E0M1V>qr=R5w2H77Jm_G5K@XN(l~Yw~Y)kNsxq9)FT0&v2s$H*m~S* zlEiAtQ4&VSr6Mod>I61M2WhENboc=~m1QIHOh}QNk94T`aIsSttvgMPZ2IT?HQ|YD z78}*fUeB$`p^T6_F;@#1Sl&zfw6EzGYv1rRfX4a~P-ghHMv-kj{!@I60g4iMfU1z; zg(y$c!B>V0e~T66ahUkPwzl4`&pN#?;iD^^N;vm~CAGAW8dXl1PEGktH29pN6gpkM zeKo@`4V||UUQ&hY92*;18}uhOWWl6{)$C!6(?iLr@?`32S#gMAIDF)sTS9`W+-FclEv62C37j*b%(Vk6g$V?L~*#S;uY(B3nuPH@>hk!9TT zf9gv~QP+9)v8t4f#p>x^Y01;-P%77cN{Q}u4s$X4WcRdf|F(T4cp~^LEO$iL>;i=Q zZFPa;ap`(bG$2WZFO?m{;P{ro^9~|go!O%E=URK(L;4@atS-9kR{UhM;NhC}F)1lL zAQ^F0%x@eZkfU>W7`c!Bzya>(ZTFMBiXh=BiV%AQRmKxmAC6AVTBVAT$fcv&KwwFM zU>iQh4XP?vV_mS}x&?M@``Fj#Z#2Cs*)y%{zHa9+e;QKbot*@gBMn}rFb$e}_~`7b z7yM`cWz3^+Qg4Zn6yRX7BKmtiZ10EP4Mg+&3RBE1ru|>1APz-O? zAu`+^7}okl8h@u9PH+2SpsS6IHO;qYnr6=kt+5g0kyx(tIkbV)aPf^bZ9}SCc=f_r z#sg<7BeDp73<)QTbQQ*R5E6@xvf_%G#{og@B|x~LUYEr!C9k0+;~7AuX~c-a*gJ-B z{`GP8VkFj`AcTQ z7Vr)XGGimR6qVTXZ;5F;-%*ZRvb3x&Y^;Lr-EZJZw}|(cY#gJhj^M0z^9?arjyDn- zGu*zY^64NasM=8tZ{=+mCUOX)Q;je?9DkHKQ1xTS`llnO8~Ne==eWsd2mq+7Hm_u8TRvp zp}BU((peAvXJRglyIENPxb(T(yq0^vDD2pvV!lzuVEB4%@<W3JeG#^d>&tY)|k~&V$MTiJ<8wC@2iP{ z8YPPOj8a99c&PZhKvrk2mNf0lq5(ZIjy^f*rI1ebOkDMQui|ifm(W7u>7Lu6l?1GQ5=jPC-;(OY;KrgpEV<;>pRRmu>Yv z?zn~4PyOvj)0Y)M)i=wa|KHpRWYk8IZ$b`ZbEjn%W`&_K4b#Twy)xzYojqCP^2AVG z^jEPmricmb?#c}oBa#>{>|~M6BOj{owB+Tx(r1M9?8vTWK24jQH9KswXbcyPV9BoN z>W1*~67$}+|4mwV@>53ncRKI)9zAmZiG{~T8M!5yL9*7}> z=_6XRSg(+*0#nimUi>~cWX*}HP|MC8jHE;Q2odV@UWt0Xu2!;S`$6%<&4Qfl{7G}Q z#UbLU#=5_M9GUMFS6@rUY?;4qFN3{mpRO(P_ghEJSlq%T>% zvRTh3E>yRY#UPnurXd$=m$*>+yAFw;8xg5@PM%*2y(s_CeH9W5&>wQ_vb^@57^LlQZnZlL86t zf<&qB{#H#}bHe9{s&xQkM#z7C{DjCm=h71tGoORg&!_ZS<7r@9Y_na9&!*UD`0U%~ z(DvGxM|+V6MjTK<$9;V6fUFPE7T-RkyL#vz+0=SZ^R9mgn2gnOQUKjerLKw8jg>Y+ z-N|!teM3l@Zv)dTU%uu%$r|$foF{43iL>Fs@55wjj-vUi$B7tj^OH-+7n&WBWRJ<% zI|5}9stLUsn2C>W^K5tAzZjHbO4hmyae+nbC&&y3EMi|+X|t1nI<|k0*lfW1W^b@1 zELIbQPCXn8pLAWX6UJrNM_tQi+;S0vys%O$cjawqyNg6^9Xozej5AWP3?9?JPk1Ag)R}Gs8YfWqV=U$0h_f_MH;D|X z6m^gklBT?!$2db^16`Jz67%bQH(jLGps4zI2IA(mvhMF&E+N@>Xh%Hm(Y#M(Hls~l zl!#y)tEeYKLdfTmml&^{b?KYkAhe$qAxd`|M0BCtW$Hi3B0O}2=yuThJF$1YIDQp| zt$9KGZSKv2C+OV>wb`OOI6}AgKKoLPw{N<`ZvEF|A8pu)7@msnU-iFc;@V5jx0vnV z#P)rc{QFQJ*zBXn{683GD6R+(^SBSgI#~jDEFQ{BmbqXid zc7Z=4sEFU-(O>_V<+GQuPChYA4oRlM2^hzD$CxNl(_G+dBVW8b&afs|+X;Kh`hAgl z0RgXh6E~u^-I>doFXM!??ul!c%zH%%tfEgfsHaU=Y;lwpjnZwS=L`z|4DA)rz-o>ebNL?)m!YLnhqEpYJM|l+Eu8vVirR!KtLthPM3BBFq%tNDEc z-_$#Xf+e$KX5P+Qz_2zi;o(K!sBKovwoJS>X2nBYu`j{+WxSj2%STIoy7)JHV_XRd zS^8dsz&`9X1d5ML(Eq5eb!yr;ztykr_N`<3z~lQtu-Dq2+9ewUto@?wpJmZg0lp5h}g8!2~P>h1ToXa&{T zaZ^!Q(82!j8B_8q(^m9?YCj{$X~w3B@V@Ws4o7H*eb~|mOQrWv=LRD|+Z=Q{gNtUW zXJc}om7DlZD#8r$i@eu&*K1r)tS|HoIKDelP1tPjTh`0)S+f{R!fF5tdl3iJvd%f` zy0=I(=b5eJ^P*rh1fjZ443~nAb`Xd3I#YG-0^NtP61L2-5^KnOzSBcVVpPH~e-Ah< ze%-jH7fz-TGC5{XIb`qd={wWCP6ivs>fn8-fo4PLJiG~Qn`?TldAJyhnlO(8WOi;R z&6*vFEz&xKxx_KeJtwzRs)N|Oc*fw1YY%^Mp5@RLP<}B`oj{skk4(9YB_)PZxUY~T zw~k@J1{_;37jv%)@!oR!gl6N_u>{t@9qbdwao@Jg%?NQw&fXD#sTn@ypT{)+_P62I zqfF&t3bPqo?PSM`9IeTs8>t}g`tYm3qw~AJt{cv>AxD2ZwWC7Nj zQt?ks00NPlwj??A14;s!^Bi?@m!*xcCEfwvezuoh@|nlh)&u1(EEhv(h9@$nx8)Ih zIrxf0x^|F*oP4m0-;duNU;6U(gJ3z4P$zPf9dBV+Y|LT!q+ZawGG}lWJ`H8WVtlj; zQ=kI8pD*%L8HIZpumiiiZT*nVIc?9EVaG^*34JKIiJe9-H=hy-X z_V3G0j%Zh_%rcU*mbd59V37T-Prr1co8ilGqo(->3=z;YC+J41m^F+;2x?NQ{ck@H z@RvTTck7g$5^7|s)apA8O7X;>Ef5(o|7`ifC~%K7sM!WYWSDH^sO5Ufze&h=q@I9j zRq_t)H_EVg`?S#6iDa9CCzDYdTDoW1?QPIQ8blL=+}>c->a=Du2X{V(abHeO=9i`; zEMQzIN(~zHa=#V`FK;pGPigr^nUHu^&65y*EZ{iGxygtSb?i2|Vu~4vu@) zUzyIk<~nmhQSa-%rR$BSDyK8jSiBBvzW>amj(WnOZLwwoUNn?4mjIWmLwcCk@*Nwv z0b%ebF~JeV#u8*138i7R6Q@wFPjAS-i}^3aZogsQGu$bx`sL6yu;jr?c_QH}OZ-}o zojr)uch?B2?fml*7I3u_erk7r`Pu@%%S*Io$NQuCCGhRVKs5fVq~v%0QbY`{s#{Tf z8@k^33JJ8e#Xbt8YwHSn!D#YVfb*V2kLnW%fhfNuTHarG0~o&RxRFg#0(DQHtl7K5peLtaCi{+ zshJk5gPyVn&z5;8*)b%SR6<}IVLc-x>aRrn-wt%(hFGwutJRLO>EmiQk2^}Q6yELZ z9~f!-G93mc+Z#>HC8&CknXA|CY7xbm=n6@nqVnokC?oX?B3cGVcnpEYZ%RuUXDPN> zaQ0N@<~UO?JUnN{;B z#X0D%@HZ--4qq;_qS9k&*aZ<-!)IRX5(uaG7GvhKPgDlGstmjYNC4OoLFSI+%aNWJ zs^tpLfsTb|Hutxbd_GFU8oD8a)=L1M@Vgm;T1XFUPsGCRC(_zqTp+R?5C5ta<_(G& zlEX-!?rI1?X?56o?#X$aJ*#5)Rb$^ZEzrVlzt-8G!fqkaE;#?6hK|{}Wj>5U<1RFK zF2IWZaUU!qW33JXdMRS zkBdZhjn?4n_^&(nuD9ZQRhju*=Pi8(Y!z{0A#dA2>NKtn7#<#|9o`R?T2BKrH8(L` z_T1IVwPbPPv8YbUT8U7zl2fw)>8_HG6}iJ!He6g|S<-=!f;6YvXwZ-YoI*49Tg5>S zp!eH$uB*GV6&slC_Cb+y-9fil z`+#m<1!+_c>E>ow+b|n^{^@((YIb4Y7KQ{SgrKbUgC%EZPb)xeidjDvCuo?CUz=~PmY7kXmlY9$0;%8!A?N95*^oK$ z4uU zw$<+Yde!@&ZN$_$QCc~UB7PF!*)>{LS8U7rtESS$sgB+2!U)vx7F|}s-c*ax==P#l ztqyzdPO*Yk9#ZYNt}=wE1>M}>XSv8+4t~&UvuD*g2gzF6FR>X_AKSLc7)cbheRh@| zy;?0F4G#|=Xn-NT?EnaCeK8K_irwUvw-E4A_ByUK~3C4F8fL1eYt|Gp{*t#`}Gb6ymlMCU7fi=A^z!T=Wh! zd?^?xcK>!-lmK{nf6!yLATc7zGGB^Bx1)chdfzBI)0mfr>Xkn)t@BqAvYe#F+hW_y zo*mpD9`{??ax!C|Kosg<<2c;YvH#+OF?zjFe`qU2<$epNnjgumsv+tZJnMlGbzWMd z`6yWng@3XrKQ=t7YxrR)rIMd{ok);8&Y@#q?&Fj-)Nl$X#!jQ0HaSLmIYwSt1b6t~HPx`9==w?!F0^0+J^MsF_Ui8#3Cop(6PB``wR_rmJLi`7AtY}vkL04OFcMVaZ&nUTWJ((~@) v+2UTK;B)5@f4c^iz=MOB4;QK3>xj=7R<)xf^>Kyn#t1W2{CgMRE~own&s+Le literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_color_quantization.jpg b/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_color_quantization.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d8458516021dc20e14eeb8375667e52ab40ca847 GIT binary patch literal 31684 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

4^((ISX72k6E93E>>Xq=(VQvX0k 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 I#4zap11wT6IsgCw literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_objdetect/py_face_detection/images/haar_features.jpg b/doc/py_tutorials/py_objdetect/py_face_detection/images/haar_features.jpg new file mode 100644 index 0000000000000000000000000000000000000000..18f7d789c46a517c9b4a844cedc2731ef2a176e9 GIT binary patch literal 10964 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 F{2zW_*n$86 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_objdetect/py_face_detection/py_face_detection.rst b/doc/py_tutorials/py_objdetect/py_face_detection/py_face_detection.rst new file mode 100644 index 000000000..a10d5907c --- /dev/null +++ b/doc/py_tutorials/py_objdetect/py_face_detection/py_face_detection.rst @@ -0,0 +1,104 @@ +.. _face_detection: + + +Face Detection using Haar Cascades +*************************************** + +Goal +======== + +In this session, + + * We will see the basics of face detection using Haar Feature-based Cascade Classifiers + * We will extend the same for eye detection etc. + + +Basics +========= + +Object Detection using Haar feature-based cascade classifiers is an effective object detection method proposed by Paul Viola and Michael Jones in their paper, "Rapid Object Detection using a Boosted Cascade of Simple Features" in 2001. It is a machine learning based approach where a cascade function is trained from a lot of positive and negative images. It is then used to detect objects in other images. + +Here we will work with face detection. Initially, the algorithm needs a lot of positive images (images of faces) and negative images (images without faces) to train the classifier. Then we need to extract features from it. For this, haar features shown in below image are used. They are just like our convolutional kernel. Each feature is a single value obtained by subtracting sum of pixels under white rectangle from sum of pixels under black rectangle. + + .. image:: images/haar_features.jpg + :alt: Haar Features + :align: center + + +Now all possible sizes and locations of each kernel is used to calculate plenty of features. (Just imagine how much computation it needs? Even a 24x24 window results over 160000 features). For each feature calculation, we need to find sum of pixels under white and black rectangles. To solve this, they introduced the integral images. It simplifies calculation of sum of pixels, how large may be the number of pixels, to an operation involving just four pixels. Nice, isn't it? It makes things super-fast. + +But among all these features we calculated, most of them are irrelevant. For example, consider the image below. Top row shows two good features. The first feature selected seems to focus on the property that the region of the eyes is often darker than the region of the nose and cheeks. The second feature selected relies on the property that the eyes are darker than the bridge of the nose. But the same windows applying on cheeks or any other place is irrelevant. So how do we select the best features out of 160000+ features? It is achieved by **Adaboost**. + + .. image:: images/haar.png + :alt: Face Detection + :align: center + +For this, we apply each and every feature on all the training images. For each feature, it finds the best threshold which will classify the faces to positive and negative. But obviously, there will be errors or misclassifications. We select the features with minimum error rate, which means they are the features that best classifies the face and non-face images. (The process is not as simple as this. Each image is given an equal weight in the beginning. After each classification, weights of misclassified images are increased. Then again same process is done. New error rates are calculated. Also new weights. The process is continued until required accuracy or error rate is achieved or required number of features are found). + +Final classifier is a weighted sum of these weak classifiers. It is called weak because it alone can't classify the image, but together with others forms a strong classifier. The paper says even 200 features provide detection with 95% accuracy. Their final setup had around 6000 features. (Imagine a reduction from 160000+ features to 6000 features. That is a big gain). + +So now you take an image. Take each 24x24 window. Apply 6000 features to it. Check if it is face or not. Wow.. Wow.. Isn't it a little inefficient and time consuming? Yes, it is. Authors have a good solution for that. + +In an image, most of the image region is non-face region. So it is a better idea to have a simple method to check if a window is not a face region. If it is not, discard it in a single shot. Don't process it again. Instead focus on region where there can be a face. This way, we can find more time to check a possible face region. + +For this they introduced the concept of **Cascade of Classifiers**. Instead of applying all the 6000 features on a window, group the features into different stages of classifiers and apply one-by-one. (Normally first few stages will contain very less number of features). If a window fails the first stage, discard it. We don't consider remaining features on it. If it passes, apply the second stage of features and continue the process. The window which passes all stages is a face region. How is the plan !!! + +Authors' detector had 6000+ features with 38 stages with 1, 10, 25, 25 and 50 features in first five stages. (Two features in the above image is actually obtained as the best two features from Adaboost). According to authors, on an average, 10 features out of 6000+ are evaluated per sub-window. + +So this is a simple intuitive explanation of how Viola-Jones face detection works. Read paper for more details or check out the references in Additional Resources section. + + +Haar-cascade Detection in OpenCV +=================================== + +OpenCV comes with a trainer as well as detector. If you want to train your own classifier for any object like car, planes etc. you can use OpenCV to create one. Its full details are given here: `Cascade Classifier Training. `_ + +Here we will deal with detection. OpenCV already contains many pre-trained classifiers for face, eyes, smile etc. Those XML files are stored in ``opencv/data/haarcascades/`` folder. Let's create face and eye detector with OpenCV. + +First we need to load the required XML classifiers. Then load our input image (or video) in grayscale mode. +:: + + import numpy as np + import cv2 + + face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') + eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') + + img = cv2.imread('sachin.jpg') + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + + +Now we find the faces in the image. If faces are found, it returns the positions of detected faces as Rect(x,y,w,h). Once we get these locations, we can create a ROI for the face and apply eye detection on this ROI (since eyes are always on the face !!! ). +:: + + faces = face_cascade.detectMultiScale(gray, 1.3, 5) + for (x,y,w,h) in faces: + img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) + roi_gray = gray[y:y+h, x:x+w] + roi_color = img[y:y+h, x:x+w] + eyes = eye_cascade.detectMultiScale(roi_gray) + for (ex,ey,ew,eh) in eyes: + cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) + + cv2.imshow('img',img) + cv2.waitKey(0) + cv2.destroyAllWindows() + + +Result looks like below: + + .. image:: images/face.jpg + :alt: Face Detection + :align: center + + +Additional Resources +======================= + +#. Video Lecture on `Face Detection and Tracking `_ + +#. An interesting interview regarding Face Detection by `Adam Harvey `_ + + +Exercises +=========== diff --git a/doc/py_tutorials/py_objdetect/py_table_of_contents_objdetect/images/face_icon.jpg b/doc/py_tutorials/py_objdetect/py_table_of_contents_objdetect/images/face_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a7def471374b87aa5840ab155ce4729b5c59211d GIT binary patch literal 3868 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_objdetect/py_table_of_contents_objdetect/py_table_of_contents_objdetect.rst b/doc/py_tutorials/py_objdetect/py_table_of_contents_objdetect/py_table_of_contents_objdetect.rst new file mode 100644 index 000000000..a5d8a70b7 --- /dev/null +++ b/doc/py_tutorials/py_objdetect/py_table_of_contents_objdetect/py_table_of_contents_objdetect.rst @@ -0,0 +1,33 @@ +.. _PY_Table-Of-Content-Objdetection: + + +Object Detection +-------------------------------- + + + +* :ref:`face_detection` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |objdet_1| Face detection using haar-cascades + + =========== ====================================================== + + .. |objdet_1| image:: images/face_icon.jpg + :height: 90pt + :width: 90pt + + + +.. raw:: latex + + \pagebreak + +.. We use a custom table of content format and as the table of content only informs Sphinx about the hierarchy of the files, no need to show it. +.. toctree:: + :hidden: + + ../py_face_detection/py_face_detection diff --git a/doc/py_tutorials/py_photo/py_inpainting/images/inpaint_basics.jpg b/doc/py_tutorials/py_photo/py_inpainting/images/inpaint_basics.jpg new file mode 100644 index 0000000000000000000000000000000000000000..82af8543f395591f424e49e26fd035d9571228c3 GIT binary patch literal 19520 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 QGts3qe9GjTv1%6cP>ah277*0^XH8` zI6N`ptE(7+7R33sYtY{GvUJrBfx@+!;!09?g+o|*puAyxkXbkRjtA7U!* zdKZQN0OR5R01xF|MBjA%D5AMBAH+K8d?g8g)&2+iSBUtF{z5PR09_mT(M4^A*ypZg zkNEr_?hofuYG3j0zwaOCMHT5SjwE+J2mb(HW%O_4E724FMuYzVT!j=@pIhQOscbO+ z0LVK30RFx!JwM~&Ki*&GMHO`Z7Abs3V;B0$@L!6*@=))7k^cbbB8n@{skz*?IRXB! z@v65!ck!Z%f{HKqhti{JD5yPOvWBf{SpC!feQ2VZIOb}>)BXcVKinVg(M2|M4AB1o z$?8{BVR(<{{YA~5BlXr6}tFH`$sY2@4p|=*OTj?@&L2{0It8|MHE0%-0iRb z0OXk3{{Yw4pZ@@$!CCWv$Qs-JySM&@MHSae;b%Qhi5{STd)8u8u9-C8vg*uUg!S0(M4Vq#}Tp3 zxBBRR-8EwS{yg96Ka~_$sU40abe;?Qmf!W+f313@$NYvg{{Z)BqPQ#kM@21(5Bz;< zfA!2(OZ6X0D5|Bi3H(Uwt-sX8{^0&Xyno|g{EYU0_38frvl=L`KBvTX$79Zyqg88< R^=`_): + + .. image:: images/inpaint_basics.jpg + :alt: Inpainting example + :align: center + +Several algorithms were designed for this purpose and OpenCV provides two of them. Both can be accessed by the same function, **cv2.inpaint()** + +First algorithm is based on the paper **"An Image Inpainting Technique Based on the Fast Marching Method"** by Alexandru Telea in 2004. It is based on Fast Marching Method. Consider a region in the image to be inpainted. Algorithm starts from the boundary of this region and goes inside the region gradually filling everything in the boundary first. It takes a small neighbourhood around the pixel on the neigbourhood to be inpainted. This pixel is replaced by normalized weighted sum of all the known pixels in the neigbourhood. Selection of the weights is an important matter. More weightage is given to those pixels lying near to the point, near to the normal of the boundary and those lying on the boundary contours. Once a pixel is inpainted, it moves to next nearest pixel using Fast Marching Method. FMM ensures those pixels near the known pixels are inpainted first, so that it just works like a manual heuristic operation. This algorithm is enabled by using the flag, ``cv2.INPAINT_TELEA``. + +Second algorithm is based on the paper **"Navier-Stokes, Fluid Dynamics, and Image and Video Inpainting"** by Bertalmio, Marcelo, Andrea L. Bertozzi, and Guillermo Sapiro in 2001. This algorithm is based on fluid dynamics and utilizes partial differential equations. Basic principle is heurisitic. It first travels along the edges from known regions to unknown regions (because edges are meant to be continuous). It continues isophotes (lines joining points with same intensity, just like contours joins points with same elevation) while matching gradient vectors at the boundary of the inpainting region. For this, some methods from fluid dynamics are used. Once they are obtained, color is filled to reduce minimum variance in that area. This algorithm is enabled by using the flag, ``cv2.INPAINT_NS``. + + +Code +=========== + +We need to create a mask of same size as that of input image, where non-zero pixels corresponds to the area which is to be inpainted. Everything else is simple. My image is degraded with some black strokes (I added manually). I created a corresponding strokes with Paint tool. +:: + + import numpy as np + import cv2 + + img = cv2.imread('messi_2.jpg') + mask = cv2.imread('mask2.png',0) + + dst = cv2.inpaint(img,mask,3,cv2.INPAINT_TELEA) + + cv2.imshow('dst',dst) + cv2.waitKey(0) + cv2.destroyAllWindows() + + +See the result below. First image shows degraded input. Second image is the mask. Third image is the result of first algorithm and last image is the result of second algorithm. + + .. image:: images/inpaint_result.jpg + :alt: Inpainting result + :align: center + + +Additional Resources +========================= + +#. Bertalmio, Marcelo, Andrea L. Bertozzi, and Guillermo Sapiro. "Navier-stokes, fluid dynamics, and image and video inpainting." In Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the 2001 IEEE Computer Society Conference on, vol. 1, pp. I-355. IEEE, 2001. + +#. Telea, Alexandru. "An image inpainting technique based on the fast marching method." Journal of graphics tools 9.1 (2004): 23-34. + + +Exercises +================ + +#. OpenCV comes with an interactive sample on inpainting, ``samples/python2/inpaint.py``, try it. + +#. A few months ago, I watched a video on `Content-Aware Fill `_, an advanced inpainting technique used in Adobe Photoshop. On further search, I was able to find that same technique is already there in GIMP with different name, "Resynthesizer" (You need to install separate plugin). I am sure you will enjoy the technique. diff --git a/doc/py_tutorials/py_photo/py_non_local_means/images/nlm_multi.jpg b/doc/py_tutorials/py_photo/py_non_local_means/images/nlm_multi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf504355da97a5ec50430e62819acd07f0ff3e39 GIT binary patch literal 26593 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_photo/py_non_local_means/images/nlm_patch.jpg b/doc/py_tutorials/py_photo/py_non_local_means/images/nlm_patch.jpg new file mode 100644 index 0000000000000000000000000000000000000000..17d0f7a74fcf7cb28c56370e7b516dbc74774695 GIT binary patch literal 16464 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 (First image taken from here) + +Exercises +============ diff --git a/doc/py_tutorials/py_photo/py_table_of_contents_photo/images/inpainticon.jpg b/doc/py_tutorials/py_photo/py_table_of_contents_photo/images/inpainticon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc22cf0377a5600a2f6ecd6fe51767f555cb05db GIT binary patch literal 5020 zcmbW3XHe5!o5ueTkPe0>(jpQ?Kpvz@35m)>SE(^l3@R!D(vc1kP(Y+>KvY1GP$dx} zO^Wo6)DS6B5~{RNrG&6N@4K@*v!8bNI&FX;KP4b2Dg*|LNQsC_ zNI)PEfm3IpXC|tl$`{anLr@sWBInh! zdu(St1(m~+ve>1sl{5%h^wXd!_r1b7IE7D%oEANIUgmIEmtRm= zO8i<@UQt=~t+A=OrM0cSqjO+zh%`+8IWjs;q0Y?C%`YteUf|u|G&uo3+%tSMgeXR({XqpFn|EI)?!07)eG;1Kjf_6 zT+r+wB*TzT5iu|qmq*R7p)t6GCsYL0c0a1wknV8*Trz@a${bl0n;{l&eDJ84@dGZN z*?a`>3-8>HupQHUcP;Q~z0izhEMQ zJaq2Aer2Pq=PD{T_`5Uaw@WTxim=9`bmLTQSv=AV;haNmKWNt&HPpo4JOY{>mOZjW z&M!*;2m-_qx$^MIJ26gk@-h=1N*OKR_qSsUeYEcBnv_Bk_Epj6cTFe~nu#^9oXM8} z<>2Aj_>AXvgF0AUNXQ?!}*2Afv@Q@YqDj?_rO^e ziT*B)m{Tyg?IG{*hU|*L-Q)u4El&7Hl4bhfD*gxniS`lEfuS-w>zG!uz(f!Kb>E$~ z;2nb4ZcuIq1rzOA#OyH>L6(6b*P>CqJMW|Z3d(VqsFm33_-lzhM#$vq|+k3pWi$s(46SR84Wt!*ubV&6H=@c!7?s zdxtzezs@;yn|otNs`8zU0IvWkE(bU^-827FtURb%L#SaX^!yQE^rjkscPx#En{Ehx z^DPlvNt~KCTKbLIC%sA=D6qC$Pzwqp5>!z-`OZvavHZ_=owIP^iWHN8QZB_upx6Xm zdmlz8Lxea014~wLU5v6qzSWrLif5bdrJ_L;({P)K5~m;v4-XP2Hz;;7_=kbQm#xJN zdE8+lL#7Ldu4ww@WszvS?6dPaLcD4(8=f|k5UNf7I4{~~8Ks-1Z*_jLt6+PG4AS5k zsJV8WapEExR82y5-w(0b_l{%;_(?PCL|@$_BiApt?o0^M${3$li=pNaImF(g)by!! z4MHN!ky>4#DpI3b{3h(mYqlcgRSZ4kt(E1g{It(G1=YkMHO1)lbDx!pTj#C2i+k_J zAkqp$1=q*Dob^~{ir{~s``mm(s9x86J0dZS*S6Rs_cu!TbwKp4=92A2Rg02$t=gFn znkdopX1B~jh%0w=!kdl&&Z0J(4_q(j%EO@d#-*NM7WC^ZXnwKKQ-&3MAEvxq7LNdy zaf}n4b3N^4gnJl(up=v$`pk?i9|6)hQk)?HxtFQ41Q)F);g{$1&dWYDGn7ycBo9IO zR88!;cJB|~cn*~0$qc=lq4Rwd9H5$1l4s)V#QpH)R5Qbs#?^yQLcRK?SoK?H?FLF! z3EQmkGH=QO5yHvc63T4pu#~CFY-pw1o+Ul`Yp9I>s)Stsv^Ah@0?r_9OunR>=ewkG zsWnG=fHFh9=}U!J8Kg@|k8Ghq&XT0o=Bsjg?xZ}yHDdp@ZQaRrzqHc|XF8_1x0vff zRXS0uKeUG9lZxzYz7FyOt-<29b$Np+-^im60Ezm3wEYwYyhjkXkPPa#6Ud<~ z`|4*WSM5ZmI|?V@n)sh_JB96%JCA^`gr|SsbmW@>BgqH3b8F{4iF(9JY3KvL{LPr(s-`^S&ZD^DRJUq8E3t@8f5-b*KTf&W0AEBXVbkijGZ2FbyKi-+PyKF z^Fyhful-Q2xSd#&5_CIe^_ngpE>O8v^8z%$tEhX-kx%PM=*MuT_FUOBGbl&*>3}jt zHnjbi;@Z|hiZx2Y?3teD^OGJfPI|3m{^TGDnQ(lD&P}*K6tvYNglbf3->>0(_Mu(n z_|#@I-WI}Dnd!SrwX&5^Ufuo)#CW*OD!3TkFlY>%Pf$CvY2xYS`dQlTWfbt`&s5Bx z?{S+Q>S?aoV@Y$9-Cq>@6J%(F%+{=Yr%)J?rWoUsA?&Khmp{AJsM1NS0w zc~A(NjemLsfMLw4h$u7*jZO>jyIkPu>6z4y#Tp_a4QA1rlwvM>n%_&_SA-^o;&IMA zrzdeyiC4D>Uyp#tl^6f|KFu@yWG;r%4^7dSiHneSyJ8@HI7-VLRnbdro)o0p7Z|C8 zRbJ%Tj86krHXJa5munAHB+bp0WZ#o;HqqGSZM z3RjWP6~4gX!3JcM+3ti?+3#A9B5SugIIqsRDywVCT|o!UkgX5QmoQIAxr5AlZ_(Ob-x6Q?}U|7EUzHD5u~$* z)7Dg`P3v>{4D94Y*GadYaD9yNer799)qa!}Z&mod$S0)!&(B4M(B_tw(pTEAx}OZc z>dItC9iwq(26nL%?B%+B1U&P1zEw3C%<oo?jh!4z+#1#Xi^D^Yczi)g9JuMgxd zyIucd*+;GjJ`K4`o2bp#K528UKJ!W?<0(Z_V+dj~JUVBDHsCzX>9Fe<92-=>qyI4T-dnMAyfj|u2iQGe3NY`RTwdb5niSy zM)0OHy^T1e*5j2Jr;dQe)!ih@;(LqaA3RdhL}DfTX&WS)9A>1~4pra}zu=0mF(Lfo zhU%pTEDHtRnq02n`HE&fRnl4j&+nS!BnolO7Tp1LHct9A>?I~hW&?;ZY9V@eTQ1KZa!J~rT?XR0KAXpvs&_%%<6 z4z6uoz(4w0_Fd###Y2%q2l2ToY6BG~TUNUFu0b{K_|x<=T^C(ZF;-==A-{%*EQgFt zvTwI{zL2zVkR)xSF3*1~W|UT#iafAv_(LEL{Im&HCL{F`9_)CzgfCF2Jqo0AB;%r6S_)oWQ19C>2zymuswz zO6y16Oo8x+9ds}MijOJ_CKvxMNx#?vo>P0mv}XS#*l55NWeK z?14Tnfs*wo>7mry6%|CM(^F-Sz>a++E*^F3*_T+3ThcHT{A~6Ie7O#%)o5G-a+fd5 z=wh~`Zn%Les))|tSJ#Wv#s2;{7qc!`7ht!Yy~l6hPSv#6-@Qz6iGI!By_$wt`C`W? zYxzBSTGc($`$o1C6x|`{!aL-S<-GggfaZ@+-N~$|D%({oGH^Ctt%@$!qWU9xh1M?# zpzVaQzh->9w8fJ{jPRqf#vIYcg8 zt2HF}Y|ciZNT=V`kp28zb++Q51JkcA*IspX8?bvX@jf@H(SWgoDRyhiw!h&nz9z8e zFUQMgmPeO&Z=GN#`TXLXZ1&V|kYXod*}O7(_ty7NFq~sScJ4}$a2>nWhnd za)+bJXRln3yRJ=&3HLJK*gwhW+b#&MZS57g-}2SkMP_|H;LdLulsci^tlX;KMU z0Ur{xb^BnMzd439e)fZ*XPlP8c0)`hyaM$1B`@r|Y(sUX;{+1T3MRIl(1r4=lvqJB~3r=ONT1fSjFBD|jH* z(^0LEHZ~IMvrbCSOmu%|`1bB9kU50PSPC32A~-X<-dr`X&Vf0`l0)H;JN7?2R8P9! zHuu+?hcaV&OFpN;K>39|--J!i`~1xD4aOua-U%J>x>faK;X-we$9_oO``{8ut9T_e zkv7)Y<5|!mUhtNaibM5QdJ{$gQ2Mhl|*1ob3$mp8~~`n$Y+U`3rfb z*gNT$!&QlSjc3MQm@)U?LEO->zTu&KkQ=rIvgvsRDI}JLKQ<8d|V2@;_AGXWs^Y|*)Lq#}& zeXE`FCH`lhVj5Aet7VNl+qxjkTeha$!FSj58dgFldk3~P-r1_YeV~zQ7A^_?f!HTOmQETOJR z#gTRB+q7v3Dlt@T>&^oBvDSyTOyL9_8Xu&4xYK6;176;(O^K4uKZg8zPx*wl2U~4` z22G(R@RQ~%PLUnL;}~RexA?|5H;H38X-wO@N4~PPec;2p{tuz))6J2}omscHE&J=f zcEA+4#&5`v5q@-r)SU!d5b^Av;F6YwmglMmoJOv!@K{-L6?|&et11WNuXl y?$Sp`p6OIE-svDi;sh;AOI`(HGsby6uaBxHO~lA&=qE{ek{9&^Z(Scc8u<_Qa;t*? literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_photo/py_table_of_contents_photo/images/nlm_icon.jpg b/doc/py_tutorials/py_photo/py_table_of_contents_photo/images/nlm_icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0861964b9cd7fd2fff6fc1dffc62f725b3900505 GIT binary patch literal 3735 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 +2. `Basic Numpy Tutorials `_ +3. `Numpy Examples List `_ +4. `OpenCV Documentation `_ +5. `OpenCV Forum `_ diff --git a/doc/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.rst b/doc/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.rst new file mode 100644 index 000000000..581b1ed3d --- /dev/null +++ b/doc/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.rst @@ -0,0 +1,270 @@ +.. _Install-OpenCV-Python-in-Fedora: + +Install OpenCV-Python in Fedora +********************************* + +Goals +====== + +In this tutorial + * We will learn to setup OpenCV-Python in your Fedora system. Below steps are tested for Fedora 18 (64-bit) and Fedora 19 (32-bit). + +Introduction +================== + +OpenCV-Python can be installed in Fedora in two ways, 1) Install from pre-built binaries available in fedora repositories, 2) Compile from the source. In this section, we will see both. + +Another important thing is the additional libraries required. OpenCV-Python requires only **Numpy** (in addition to other dependencies, which we will see later). But in this tutorials, we also use **Matplotlib** for some easy and nice plotting purposes (which I feel much better compared to OpenCV). Matplotlib is optional, but highly recommended. Similarly we will also see **IPython**, an Interactive Python Terminal, which is also highly recommended. + + +Installing OpenCV-Python from Pre-built Binaries +=================================================== + +Install all packages with following command in terminal as root. + + .. code-block:: bash + + $ yum install numpy opencv* + +Open Python IDLE (or IPython) and type following codes in Python terminal. + + .. code-block:: python + + >>> import cv2 + >>> print cv2.__version__ + +If the results are printed out without any errors, congratulations !!! You have installed OpenCV-Python successfully. + +It is quite easy. But there is a problem with this. Yum repositories may not contain the latest version of OpenCV always. For example, at the time of writing this tutorial, yum repository contains 2.4.5 while latest OpenCV version is 2.4.6. With respect to Python API, latest version will always contain much better support. Also, there may be chance of problems with camera support, video playback etc depending upon the drivers, ffmpeg, gstreamer packages present etc. + +So my personnel preference is next method, i.e. compiling from source. Also at some point of time, if you want to contribute to OpenCV, you will need this. + + +Installing OpenCV from source +=============================== + +Compiling from source may seem a little complicated at first, but once you succeeded in it, there is nothing complicated. + +First we will install some dependencies. Some are compulsory, some are optional. Optional dependencies, you can leave if you don't want. + + +Compulsory Dependencies +--------------------------- + + +We need **CMake** to configure the installation, **GCC** for compilation, **Python-devel** and **Numpy** for creating Python extensions etc. + + .. code-block:: bash + + yum install cmake + yum install python-devel numpy + yum install gcc gcc-c++ + + +Next we need **GTK** support for GUI features, Camera support (libdc1394, libv4l), Media Support (ffmpeg, gstreamer) etc. + + .. code-block:: bash + + yum install gtk2-devel + yum install libdc1394-devel + yum install libv4l-devel + yum install ffmpeg-devel + yum install gstreamer-plugins-base-devel + + +Optional Dependencies +-------------------------- + +Above dependencies are sufficient to install OpenCV in your fedora machine. But depending upon your requirements, you may need some extra dependencies. A list of such optional dependencies are given below. You can either leave it or install it, your call :) + +OpenCV comes with supporting files for image formats like PNG, JPEG, JPEG2000, TIFF, WebP etc. But it may be a little old. If you want to get latest libraries, you can install development files for these formats. + + .. code-block:: bash + + yum install libpng-devel + yum install libjpeg-turbo-devel + yum install jasper-devel + yum install openexr-devel + yum install libtiff-devel + yum install libwebp-devel + + +Several OpenCV functions are parallelized with **Intel's Threading Building Blocks** (TBB). But if you want to enable it, you need to install TBB first. ( Also while configuring installation with CMake, don't forget to pass ``-D WITH_TBB=ON``. More details below.) + + .. code-block:: bash + + yum install tbb-devel + +OpenCV uses another library **Eigen** for optimized mathematical operations. So if you have Eigen installed in your system, you can exploit it. ( Also while configuring installation with CMake, don't forget to pass ``-D WITH_EIGEN=ON``. More details below.) + + .. code-block:: bash + + yum install eigen3-devel + +If you want to build **documentation** ( *Yes, you can create offline version of OpenCV's complete official documentation in your system in HTML with full search facility so that you need not access internet always if any question, and it is quite FAST!!!* ), you need to install **Sphinx** (a documentation generation tool) and **pdflatex** (if you want to create a PDF version of it). ( Also while configuring installation with CMake, don't forget to pass ``-D BUILD_DOCS=ON``. More details below.) + + .. code-block:: bash + + yum install python-sphinx + yum install texlive + + +Downloading OpenCV +----------------------- + +Next we have to download OpenCV. You can download the latest release of OpenCV from `sourceforge site `_. Then extract the folder. + +Or you can download latest source from OpenCV's github repo. (If you want to contribute to OpenCV, choose this. It always keeps your OpenCV up-to-date). For that, you need to install **Git** first. + + .. code-block:: bash + + yum install git + git clone https://github.com/Itseez/opencv.git + +It will create a folder ``OpenCV`` in home directory (or the directory you specify). The cloning may take some time depending upon your internet connection. + +Now open a terminal window and navigate to the downloaded OpenCV folder. Create a new ``build`` folder and navigate to it. + + .. code-block:: bash + + mkdir build + cd build + + +Configuring and Installing +---------------------------- + +Now we have installed all the required dependencies, let's install OpenCV. Installation has to be configured with CMake. It specifies which modules are to be installed, installation path, which additional libraries to be used, whether documentation and examples to be compiled etc. Below command is normally used for configuration (executed from ``build`` folder). + + .. code-block:: bash + + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. + +It specifies that build type is "Release Mode" and installation path is ``/usr/local``. Observe the ``-D`` before each option and ``..`` at the end. In short, this is the format: + + .. code-block:: bash + + cmake [-D ] [-D ] .. + +You can specify as many flags you want, but each flag should be preceded by ``-D``. + +So in this tutorial, we are installing OpenCV with TBB and Eigen support. We also build the documentation, but we exclude Performance tests and building samples. We also disable GPU related modules (since we use OpenCV-Python, we don't need GPU related modules. It saves us some time). + +*(All the below commands can be done in a single cmake statement, but it is split here for better understanding.)* + +* Enable TBB and Eigen support: + + .. code-block:: bash + + cmake -D WITH_TBB=ON -D WITH_EIGEN=ON .. + +* Enable documentation and disable tests and samples + + .. code-block:: bash + + cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF .. + +* Disable all GPU related modules. + + .. code-block:: bash + + cmake -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF -D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF -D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF -D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF -D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF .. + +* Set installation path and build type + + .. code-block:: bash + + cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. + + +Each time you enter cmake statement, it prints out the resulting configuration setup. In the final setup you got, make sure that following fields are filled (below is the some important parts of configuration I got). These fields should be filled appropriately in your system also. Otherwise some problem has happened. So check if you have correctly performed above steps. + + .. code-block:: bash + + -- GUI: + -- GTK+ 2.x: YES (ver 2.24.19) + -- GThread : YES (ver 2.36.3) + + -- Video I/O: + -- DC1394 2.x: YES (ver 2.2.0) + -- FFMPEG: YES + -- codec: YES (ver 54.92.100) + -- format: YES (ver 54.63.104) + -- util: YES (ver 52.18.100) + -- swscale: YES (ver 2.2.100) + -- gentoo-style: YES + -- GStreamer: + -- base: YES (ver 0.10.36) + -- video: YES (ver 0.10.36) + -- app: YES (ver 0.10.36) + -- riff: YES (ver 0.10.36) + -- pbutils: YES (ver 0.10.36) + + -- V4L/V4L2: Using libv4l (ver 1.0.0) + + -- Other third-party libraries: + -- Use Eigen: YES (ver 3.1.4) + -- Use TBB: YES (ver 4.0 interface 6004) + + -- Python: + -- Interpreter: /usr/bin/python2 (ver 2.7.5) + -- Libraries: /lib/libpython2.7.so (ver 2.7.5) + -- numpy: /usr/lib/python2.7/site-packages/numpy/core/include (ver 1.7.1) + -- packages path: lib/python2.7/site-packages + + -- Documentation: + -- Build Documentation: YES + -- Sphinx: /usr/bin/sphinx-build (ver 1.1.3) + -- PdfLaTeX compiler: /usr/bin/pdflatex + -- + -- Tests and samples: + -- Tests: NO + -- Performance tests: NO + -- C/C++ Examples: NO + + +Many other flags and settings are there. It is left for you for further exploration. + +Now you build the files using ``make`` command and install it using ``make install`` command. ``make install`` should be executed as root. + + .. code-block:: bash + + make + su + make install + +Installation is over. All files are installed in ``/usr/local/`` folder. But to use it, your Python should be able to find OpenCV module. You have two options for that. + +1. **Move the module to any folder in Python Path** : Python path can be found out by entering ``import sys;print sys.path`` in Python terminal. It will print out many locations. Move ``/usr/local/lib/python2.7/site-packages/cv2.so`` to any of this folder. For example, + + .. code-block:: bash + + su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages + +But you will have to do this every time you install OpenCV. + +2. **Add ``/usr/local/lib/python2.7/site-packages`` to the PYTHON_PATH**: It is to be done only once. Just open ``~/.bashrc`` and add following line to it, then log out and come back. + + .. code-block:: bash + + export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages + +Thus OpenCV installation is finished. Open a terminal and try ``import cv2``. + +To build the documentation, just enter following commands: + + .. code-block:: bash + + make docs + make html_docs + +Then open ``opencv/build/doc/_html/index.html`` and bookmark it in the browser. + + +Additional Resources +======================== + +Exercises +=============== + +1. Compile OpenCV from source in your Fedora machine. diff --git a/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture1.jpg b/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bd3db21c84796a34069590109e54c556f89c298 GIT binary patch literal 29483 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 E3p=Fxr2qf` literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture2.png b/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture2.png new file mode 100644 index 0000000000000000000000000000000000000000..acac7dd8b53e36bc30854482ca911b4bbd6446c1 GIT binary patch literal 15972 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 Ki4t)GpZ^cRa|pr! literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture3.png b/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture3.png new file mode 100644 index 0000000000000000000000000000000000000000..95c76d7cd24ff67599786d80644e47cdfc8e434b GIT binary patch literal 15102 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%0Aov-el5uTKTnZKx7P) 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture6.png b/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture6.png new file mode 100644 index 0000000000000000000000000000000000000000..67ed04b2dc2cc7dc674c6c1233672e5c00ca45ab GIT binary patch literal 14663 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

9B0b?ianXD#T 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_feature_representation.jpg b/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/images/oc_feature_representation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..39be595fc80608d9f33df68153863d0d1b2c4636 GIT binary patch literal 12012 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 Pk$irb)BjsWf&KVDs!JQ< literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/images/initial_labelling.jpg b/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/images/initial_labelling.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2d1925f1e35a7a78051295a59362734a366b6ffa GIT binary patch literal 11914 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/py_kmeans_understanding.rst b/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/py_kmeans_understanding.rst new file mode 100644 index 000000000..63bbfcdda --- /dev/null +++ b/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/py_kmeans_understanding.rst @@ -0,0 +1,81 @@ +.. _KMeans_Clustering_Understanding: + +Understanding K-Means Clustering +*********************************** + +Goal +===== + +In this chapter, we will understand the concepts of K-Means Clustering, how it works etc. + +Theory +======= + +We will deal this with an example which is commonly used. + +T-shirt size problem +------------------------ + +Consider a company, which is going to release a new model of T-shirt to market. Obviously they will have to manufacture models in different sizes to satisfy people of all sizes. So the company make a data of people's height and weight, and plot them on to a graph, as below: + + .. image:: images/tshirt.jpg + :alt: T-shirt Problem + :align: center + +Company can't create t-shirts with all the sizes. Instead, they divide people to Small, Medium and Large, and manufacture only these 3 models which will fit into all the people. This grouping of people into three groups can be done by k-means clustering, and algorithm provides us best 3 sizes, which will satisfy all the people. And if it doesn't, company can divide people to more groups, may be five, and so on. Check image below : + + .. image:: images/tshirt_grouped.jpg + :alt: People Grouped into Different Sizes + :align: center + +How does it work ? +------------------------------ + +This algorithm is an iterative process. We will explain it step-by-step with the help of images. + +Consider a set of data as below ( You can consider it as t-shirt problem). We need to cluster this data into two groups. + + .. image:: images/testdata.jpg + :alt: Test Data + :align: center + +**Step : 1** - Algorithm randomly chooses two centroids, :math:`C1` and :math:`C2` (sometimes, any two data are taken as the centroids). + +**Step : 2** - It calculates the distance from each point to both centroids. If a test data is more closer to :math:`C1`, then that data is labelled with '0'. If it is closer to :math:`C2`, then labelled as '1' (If more centroids are there, labelled as '2','3' etc). + +In our case, we will color all '0' labelled with red, and '1' labelled with blue. So we get following image after above operations. + + .. image:: images/initial_labelling.jpg + :alt: Initial Centroid Selection and Data Collection + :align: center + +**Step : 3** - Next we calculate the average of all blue points and red points separately and that will be our new centroids. That is :math:`C1` and :math:`C2` shift to newly calculated centroids. (Remember, the images shown are not true values and not to true scale, it is just for demonstration only). + +And again, perform step 2 with new centroids and label data to '0' and '1'. + +So we get result as below : + + .. image:: images/update_centroid.jpg + :alt: New Centroid Calculated and Data Re-laballed + :align: center + +Now **Step - 2** and **Step - 3** are iterated until both centroids are converged to fixed points. *(Or it may be stopped depending on the criteria we provide, like maximum number of iterations, or a specific accuracy is reached etc.)* **These points are such that sum of distances between test data and their corresponding centroids are minimum**. Or simply, sum of distances between :math:`C1 \leftrightarrow Red\_Points` and :math:`C2 \leftrightarrow Blue\_Points` is minimum. + +.. math:: + + minimize \;\bigg[J = \sum_{All\: Red_Points}distance(C1,Red\_Point) + \sum_{All\: Blue\_Points}distance(C2,Blue\_Point)\bigg] + +Final result almost looks like below : + + .. image:: images/final_clusters.jpg + :alt: Final Result + :align: center + +So this is just an intuitive understanding of K-Means Clustering. For more details and mathematical explanation, please read any standard machine learning textbooks or check links in additional resources. It is just a top layer of K-Means clustering. There are a lot of modifications to this algorithm like, how to choose the initial centroids, how to speed up the iteration process etc. + +Additional Resources +===================== +#. `Machine Learning Course `_, Video lectures by Prof. Andrew Ng (Some of the images are taken from this) + +Exercises +=========== diff --git a/doc/py_tutorials/py_ml/py_knn/images/knn_icon1.jpg b/doc/py_tutorials/py_ml/py_knn/images/knn_icon1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..81feba514a7f226d88cf21442b1cba4a6e61cd96 GIT binary patch literal 2449 zcmbW2c|6qn8pnTQhOtG%43b6|jIl(PEXlqrOU&3R>#>XM6&=$-O%fv%A!E;=>}yB} zNA4iYSPrsP2V;adGH0A~?z#7M|GM`+-`D5)=lgu0*Yo~9ukZI^OfcqvQ0#!eIOYB7*#IVFU~&Bqk($ z>XfLcD8HaMN*sw2L5d=el7N^;p=?kdc6J^l90o`J&&KEgVC;Y=;0Xqa11vBQ7zSdz z1w@&3vV#6F;4cHQfFaB(**Q45m;rUi0TvJ#%)+dn3BZhwVeSJE7%QKck{%nsjT=-v z1b#LyHJ@EV|5Yc#mO?`*yWhZba0&W|0aCi;7E1%U)F1)YjEE zG&VKA>3ZAU)BCQke|Ti{!`S%5Bz1n__50*OfD8?TOiOQE)Yv3Q(zc`RZNMEPtOMG7Q!!nHjW*xpPK)wlS4w;mWFV@LE#iY zsmx1m9-;j~_TPcw|1Yw?!T!ZX1-QW=X7j)>KnK`qMw438zABOkXy8bt*PR1fZsubA z@?#eVYtEyqE=zUAcnBgWeupMGSqs_;0#@ZC8?r<*)V9iFn`@+^Kp5@fG@3*Jjx<3c z$kIK&&K+fXvD3hJF(jOyI>_01+Awvq-r7!WsdJS>B6sdXC}R8YG3AQ#r-oxEU{%fhGaY#itbYuQ?qYCtTf$7c&dmsp8_Cmz+ZX{y3a~Lk>?!RBkB8}U zHJ75$sE;TbtM#Vj%wR_Rtq@P}EQ)80@?;=0MMg{?&xO?F@!cQQcL?kp!7_lr(Tla! zk7RjtZVm0m?m(qQaMGI!48S_kknpR%%HCQXN9>Tq0BBlZ)}6?!9G5n=!CUOB=Hd}? zeISJUP@)>|f6Qu4VAWAUK+QRzStLQD^HY+@T&hz9>8s0?lbLb(XL)PbM-%L*%8hA# zGc6?nSjh)bgh26O>a`16PnVwz+_aQ)edsBVw7Xr=q}Uqv-b!`6uXrYg;0QCg1WO9> zyxj{0OUI=VTqqYqwUDuHPv&Xxy)Wi7nYdNAtLCUoFlo~ot5!h1>fkRN9zRBOx9D|9 z8VnbrFUd-%+zQQ*7&xW5{xQEorb^zerJ*)sL8Y;2X0c~5A0CURt-CWsOYA(H7fT7jTK6#loqP1Ywhv{NB1agV0}m_tZ*CM zlgzfoTE;%R@hmFg{nA(eHCqYE?bfvDVT&LS-BL%7ej4Xia{T=vr+lwc)vMSYKAK@FX-~bo0FlOpU|?JbY2Z+U)&>Aoi8UO0EvtHQ&rH1=E_- zouNg8s!N5~fs^FY`qk23+J3-d9O8S}UCl%|=L79?rYK=kR!t1R^1xr~=cOkL(}!;; zXU=?+IB-)zO4GKNdVcash$dyAox+G?hS@=2JnqK#`7O{Fm++o)A9=EzM>fvixbcZq zBnrp2Bw~?L+Q~81h*%MoQpzgd1b6KQZA2DgTu55vh>V@rVf7V@7wJvP=xMGOspFC3 z$s4A1jSctjy1Z#P$CDd2$Y%F~2u$WGl1-q$WPR5=EIGG-~O;0eeP!p86)Q7ur!40&0g-MlOyVzM{a9GvwY6T zz{5j)Ls06;W2Y74I{3iRy_lt+X`4wvFBv6D z2l0tFz~J@hof^`4&nvQ$*C9=H8C3mwNn>Mlw==|bE?I9E@h<1lQ1dhIWO6{o_1eCQ zb)A}|@g%xrGg{CV9#FpdKD05H$1c=yYpS&&Vx(e}BB!-$SQwBQ+%c1ytC<9I7G8hI zde?CXe5nsnO+^#2chWWabIG^T`ntVwpIf!horj!E-#wUJ8FqCJv!8iW(1hnIkCtC| zOZM@!tu_%)z+E0a9wlB#YAYZ^!7K#y^CKN2gqaSTzIr~O)KNV4`e9(*v94t2_ zy>#EnyvXcjrGb~#wKM@Jvq=jPDFz2V94-)J1f)q31QZC;K_P^u z0s^54Q3x%ecadI|5^le;!00P&&t5SD#*poCHTJ?BTF&_4wDPXW<@AtzBXFfuWp7}TByXh2{v%}M+x04LTFC-VS=ot8sbR*R0) z+=*VqmrL$(avp=I_J>w(i|?Co`8$4SMkby!yih(d@pI=dNGM!ZR8m$^)zQ_{H!w6Z zwzRs5u(r8ni*k0kd(YL)-9O+#U{G*K=#!_cz{lT>Ye1(&yFa#r-=?8wX{F`Z5$0s>mcdi!&ZE{9pR{gd zC3#qp)&;$-uLUh_e1Ln+Qx+^tWUq8Fv~?DKFH_IEAHlGdV;^HzyL~9{+EwKp}|@6)x;z5 zON}|N4<#=-nbj?-RXbGM`sh)C=ZRn2BfIV_CCDGGX!N>aVZUGbVW_~#2u_nkDb+wx z0q+jC_aUHb`E!dTB*YUxS-(`Z+gBx_c|mjF4i!Kgy(Wg;R96u7s5lDm_-ZUA#SEeX zoPtQ$HgCf&fl?|ekU{oZ^DWNEw5I~|vcB7;X^^A!5SPQ{3ruoN_PR6;@T946jUl9d z0yl!Vlqu?g4)kH+)ny>5`c8ZpS*#4*d@7nxB*mXyn0J+Wk$1ztcqef`Zk!5iS)m8o z`VHe&kU1Zo4OJR}mHU-;iwg|0#F$mJ-$?V8j0X$QDIZ2k)S!G=EIX>Lx>H}axgn?NJh_?D#^n4u3YD8g#GC=Ic|2K0$R2b z1oiGGKBKQ?<*5K>Du4=9MVB9ik_|G;-&obT$WDqPaRX+V=&Q@Y(@TTUIcUk@#8rjU zwqr&L9Cq%4o;|@aanYT;OIK8n!w0LP-bzcM_)ru26tKU{>_wL7Oy(;SA(@rO_S{97tw9C5d@9=s<@=F{D8mIss} zln!T|N_*+F5_dn6$wk%h>du4IiyhYYl%ZEtrUO=eUlw3)D;5;#MR@jael*AV_AF=# ze`26d3bnrJY9v|cQZv-lyh7s043&C4M+FQbKOTRsH9r1BFs(+G)ngKbL?O@4K{bX% z?5_>Od~gXK#i_>Ax|obsb`l@in}7qx4abH$C4JsurI>UMB{joN0Z9hSprHpF z#q0On8v|>k8~8hl_fw=;$8AMKcl(?_HF@qHUP+?P4-A$TPJy#BNmOVN9V92s+;x=|_dDIFxtlNbhlH_NbC+I0 zjo-(x#-Ax>Py^%ThZ}!L=}|@xe`BOLMI67Dvcev>9)&KIY@nsd zVqLi$-QtjF6@hAxoZB-NJ*sl}=;IoTlan_>1->C-6*Tv}LsaQUWXujPBe~dr`i_|ho;QJ{`WUwq`c4nJi zow(J@{!r>$_=Jv9(eNjAg_Kw?`_uhAq&eN{&6RPId;Z9Q+$5qQ;k2#P_S*iNbEnWc zex}MQo#%2lf8vteiboA*NB5X>uFs_~eht%B6S_-kXmxmXkKb^9ZT1tJ)_|wNk(lT0 zp5eJZBgpz4@*=t|3fPtzUHs_2cq|#b9{C>IME7xUM!H+7Rn7lA4Ywl|kc;;QAI**M zQVNiy67B4@4Jo37+|ZbVL)>QQGiC8T>%jrC`(Xllr=x5pN05!N?cLPmM8#9W#Sbqk zpy5fabiqr?Vn{f^)>nu8(ydrE6Lw``_LD0;2_7qwqzv}^aO3TZHX%Va6)42|%*+IW zqUDj}VG*@tNn{zo(0u2fRPLpPd_E(@vd5Sb(mLCy33ku;IUBMeKJ55fD@)wNFN3L< z9~3WFf`52J-_JCXZ$I2ywR|Bmkn%fiuW9ut9H&vLa+fbnqs$CD_o)&2oiq{@x@tZk zbdh%&1p#*+sNWg?;~nQU z8}`X|Kp0+^{+ze&4$GMf^|Ci)Ok}%-C@S;Qv#8sw4}T?IA0~u}g^3Mi*9s6T%I{!n zOn=@bPYoTw7||2n-N@k*7Z*EB%Usc|A+c~fGde%Qsa!9SGnR#v_BD* zP5hJg)be-A$j$iYT(@L!DbV}eIu|B8*ViEH6yadymerCBiZk=D8#CW5w;{hL;!4mo27W^SVJ&>WG;0~=Pa}O7Gvr-L(2|}J7y~#+Dl76 zn)T(f7!%3Ux92({BEE|Kw*45X?eqDWniLhp;+n%LpPW47`1uqw&)upE!wLdC8@fcV zaG_rAc|V3)<`2wj*X4|OW*QQ!?9PUd``dTMU#h&c>k*?+=F)^ULBXrdc!9J46uN2Jil}?WT{zcdQB~iU`5oIVeAGAlsfwrumiyP@ z1U{Mp*U6brgrO{L{N3<9$%Lm?fvU}MPBrh1q`aJK8+A?*gH9{XhO~AidEdR!toWU{ z2PAL5%C_6O98wst5fl`$;Ujfos9+Ed6ZmT4E22PnF$4B)nFc*>X_-q#2HAQMesMA0`Em9OBx`+9>|)Q0C#eXQ z)0`>Vl_$AmfmB=HP#^hW#kzV5FYn{eWbomsD|g+!m(ktI6GT+5WJX={r`&COHNDTz zyv1i>wYua?)2qO`6L!tJGYU|YeO_@v+tkOwy4g&vrtETMnKrjDH}@Gg@f6F&&`;bX zTgfX41AlrgiK0Y>U-f6SFtPm46^k=owb9T#YGPe=PI%~K{Vct}P3qNgUu`{FGQ`m} z4F*@yL7Qs9E~#kdSZy9>6q6dw%EucNR|nhS`-T03F<T0lTD!|q}TvLS15pR|&nOhl(_1aig`u8^t`}6#dj*d7;yoS#uITJ_FujpUu-y`S_ zjKXKc+Su!QwQ56tcB&luTP)A&IEicO*j1E;eqKb8m-EJx29gmOuKq> zI_2RqJhvX4owXv4oSWa5po39fryfoIrj&4*9d#~iMpg2bCKs(D+V#Dpt(w8{Tbj{c zO!%cxBxAbrTSOOAJ3VvqcJ3J_*1<ysvA>_miZ3ixs1(b_Y=~9Nsm2R4@rtpjI zbOfpvrc#D;wY#N0KBja^ycL6*YPIreni+q6Vm!2=UO0?-p7%VtU2*wpYJ&c@!PWcs zWe2l|eV^LhBv>-X$DgmiNvQ}s7v%9vWi7CO_T;(8Hlm@&-wNAE-eZf=ekPZ+7l~u8$A4<1g2_5~I7I7wHU6H9-Qw36g|%gZG<+5E{hE3XsMZ9|l6;u1e znJMx+WqLNsF zGuNT>MBOX&=*nop4!&!8Wt@Fys@m3V(0;hUt9(s3`CaTe>&TBmoFjroqc@8KLz1VJ zrZoGLbq@^I$?B1818+{h{(7wdRKK)9shFV^;Hc}G%ogQ8Ulty-`>(&0c^(xgCpQ1w zqXN6!`AvjtC74Q2Sd!+zhURYG%IsUhq=0*60%p`GrZ=*1G61%_x#w$Mb6nW?hi^WM zGS*@Ka4YpKuHnEi-J|e4vzOkob^N`zuf`j! zVDOWHvN0R2d3>j7@GEXlmud#W!{!`6`Sb9{lc;iW6yh)=OAT0X^N1i4g4 z+o{ByAV1lk8;CXZxI&Pu-J;avK*#v(z2XgvUu*4(awcwY4wtd~abCgkq2>HBzEUzb zz)CZ1HCPmatMcjFe~7Ut41IxF`>nK4HCZvL{UkKJZ3DKT---=yTYvMz>^ymd!bV9% zb#i%n6;Rl|{klBV6X>^5w3o+~zSY&`fbxpy&FvI$!zE#5^sC1ip+PPL=+b5Qv9oW6 ziFF{o@KyD#-69cr{Oh$>-t-b}?|fTJ7VO9#JHp!PBPI@Sl93#S!X6=ct~EQ^OQH#B z0=vQWACe}F_zDRViNCwm!E48%vqiWX8)%MjDjkzz?i232a3_(63(;RgI!)cV&xyG` z#7Ic{V(a#IT@(L(P8q!NxGc}M!0=83QG~;AJI$n`_. You can find the details of these features in `this page `_. + +There are 20000 samples available, so we take first 10000 data as training samples and remaining 10000 as test samples. We should change the alphabets to ascii characters because we can't work with alphabets directly. +:: + + import cv2 + import numpy as np + import matplotlib.pyplot as plt + + # Load the data, converters convert the letter to a number + data= np.loadtxt('letter-recognition.data', dtype= 'float32', delimiter = ',', + converters= {0: lambda ch: ord(ch)-ord('A')}) + + # split the data to two, 10000 each for train and test + train, test = np.vsplit(data,2) + + # split trainData and testData to features and responses + responses, trainData = np.hsplit(train,[1]) + labels, testData = np.hsplit(test,[1]) + + # Initiate the kNN, classify, measure accuracy. + knn = cv2.KNearest() + knn.train(trainData, responses) + ret, result, neighbours, dist = knn.find_nearest(testData, k=5) + + correct = np.count_nonzero(result == labels) + accuracy = correct*100.0/10000 + print accuracy + +It gives me an accuracy of 93.22%. Again, if you want to increase accuracy, you can iteratively add error data in each level. + +Additional Resources +======================= + +Exercises +============= diff --git a/doc/py_tutorials/py_ml/py_knn/py_knn_understanding/images/knn_simple.png b/doc/py_tutorials/py_ml/py_knn/py_knn_understanding/images/knn_simple.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3744e517524a283185faecf72c6c41803052bb GIT binary patch literal 7473 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_knn/py_knn_understanding/images/knn_theory.png b/doc/py_tutorials/py_ml/py_knn/py_knn_understanding/images/knn_theory.png new file mode 100644 index 0000000000000000000000000000000000000000..9d1abdded4f91831ca66f895f190105cabf10af2 GIT binary patch literal 6700 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 + +Exercises +=========== diff --git a/doc/py_tutorials/py_ml/py_svm/images/svm_icon1.jpg b/doc/py_tutorials/py_ml/py_svm/images/svm_icon1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bb12380871a9eb2d98e1d8a362701f818040d52 GIT binary patch literal 3956 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_svm/py_svm_basics/images/svm_basics2.png b/doc/py_tutorials/py_ml/py_svm/py_svm_basics/images/svm_basics2.png new file mode 100644 index 0000000000000000000000000000000000000000..d4522f047986799c7d327ce744f9931cda5e719b GIT binary patch literal 7998 zcmV-EAHm>>P)+AnpTmLv`6sV@DrWhvFh?k?IqdPnQbaZqS6cpRr+c{|t%!$Y+Zvwo&XY< zu8BQt8f%SG+MT6ukXo)FJ@xheEnxv%TwJLPEKYhR*_EU9<>){^{4{0}<>}+LGEM5m z&EDkN*x%H2bpMH@bh5*w%gg`l?dzfd8yr*srMZ+eWeerCzIHhyx45^((Y&mz|6^nS zR((3S#;whAgh6f_W{O5dawBPsO^>L2oU)5+uzC6 zz5@*a`1$v~OJX}}6!hcf_4W1i>Fa)ldW@5Yf{J@#Y*|He9lOk=p0ARw96CO3 zBE?*BZjer;!HG_IE0L;vS${dt*vXUt0Pxk@uLUPPJv}BQDVzWe9vUI%=IA#yIkvR8 z`t$UDe1NN~t42de-{{#xL;pZ+71oQInZ1ovd^FeK(t)0A9ls@E00001bW%=J06^y0 zW&i*H0b)x>L|1(Z*&hG^010qNS#tmYE+YT{E+YYWr9XB6000?uMObuGZ)S9NVRB^v zXKrt8Wi4}Ka%E+1b7*gL?*qR+000}MNkltu?mO;mcU7{fVT>W1eOIP zMPDV98-@vN&?Hzc~ns4;R0n0YfnvkmJZ{)>q-Gj#efj>EkaXfuv#+TXliI^Dv8e0 z0AO(e4J>O|>oVWi@0@8Y2`m_rTxMVPUt;A1YjaI)<{Q0y$3SUd32MMB0;4G>Se<-B zV^&w&QzFwL<^ljafucd}HI-%08tCRTH2i+Ev$Hg?#3*0@V}zmy#9eAtIl_W1ytyrn zT?b!3P#Rc%pteSV8w&A&H25@S2@4+N8y5Of<3Xo+e`(wuX)?6IL~0;H8!(k8ti}%B z+_M&Ur^c2U-q~BCRR@a)&x8h#SHSi{2$m--SXax}m^*4~4>s`pOlg+?GJQh_@QMVm z&Ys*@itjp7Z?2KV+1*~EmE{arR>nqTXARDxQ>F2zM_O9ew3TcTJ{^`cE4sa2E5R@n zAA0R|Sb35T%cNE_3=<>KS>n0yuF8fb%iTG5x(cgIeZ%VkmRN;F4C~D7U=SXI+urC>EzVG+aHH2GW=7AdUbkA|;Q zVG--BUEw#xDlAeN3%6D@EP4Ber@mh4JxhR9A%&%usfWbDDlB5z6`8KWB9-xz!Ko@N zQW>0OAFRS6)>;$csS1Vle)*R>{s{ddMC1P6-u-eT)SB9QJNMU>9M*q)si^w8t#*c& zWTsZe&iug0L9^7x+1<0Y#ISDP)^(VU){uPHr>@6Y!_Rbg&+s+QJ)|9FZN0O`*_~`; zZZEL~|D~>Aghm4ihcC#b)!4y1YkTVk2I@L%oqPw`Slr*hn|s=%MolC2PJT~GVf_a9 zixVh96Vq@SO~|wT2kQBTHS@oWG>`?VH8t?v^YLv1?Ph*+DPhIHzo=HD;4KsveGvVY zEMtBhZ%)%xoo1e7P}TD3@yhF*MTnbR)^vc)7ZCd<#Z?cmvoc0vV*{TNxZRQ+ZF|iL z!I>U6iP_bc+RhSNS(avD@4!A8A6}D{Eiur|x8!WJCo}U2t~IZG>Qhdm^a?^Ny|CAl zowT$$cii?sN6kp)JN5jU(p&JK52CxNXo;kTM+cwv+#|V%RO5_uZ8qVa(!+vdLA092 zE`MO#2C@%!^I5vN(>arCK5T5r)@$p^0v7yw5X}xz*jq=!V}!7J<@c#n*P8i`1s&gFE`}#f zzEawJ32Tsk4SU)kEH_wiFUw}SK0aWGIsEA< zKi85?qyIw?!qwC{GSVqGrG9Pi$VgkUQp;uT?%Wkbccv}uSwJ#*#o@9pf0w}n@Olur zTVW4$p%a7izc}X8UVUy@2_k#naG&J*%m*m@;&U&wT<$v^f3Wgk!JU)n;#;Yg_W5EE z0d?*>?OS!O@?gQ~Q8by-LEiZsVYMOmosO;#pRYVvaL0CbGU@tg=Q@-D5LJI23m;K- z(EJV4$7RF9X}_sGGCNMG77aiTbtDx{_bEK1^M>%TX4$admI=h-ykEhq_If!c0kt4* z6La5fTG_FLH;i>%+9Vqm6d#&%eKZzdK!AFeLF==N@H&?p;LayU@0Se=!Y?59(fQXJ z7q(43HljPed_cjl;CSSsC?A&O`k>a7_iDnm&_!s+Q(_>I>yEq87nM94j=xONvmjhA zxjtCm85x&KVkIyd7%;eEx$Zc42<=laEcpsPC8vXEb`#vhSwd2G5)AJF3@$o>aaI_PLvHxa(&QT zc%UljAX*p`Bue>d9&1)GEI77mOg=0)G>f{Du1^9;!_VL{!GwpT-SoEIf`Vbesb&gT zP&kIVl9b&67;ssk6{tf2f_4ug#g)(~K+=GCWG*~Vw1F5jx_l}JM{=6ObmWKQ%7*pS z4%x6IQ(!JU(5r_k4jT?6E2j`Xao-h1!xAsOXIwU{$*& z$j@XQIyn~}=(a#x)T5WWCnITnQJ>>NLYvc^CeBWU4Z{ae|5yK2_T)c!46%52!-r?- z5+1KA;gVo^b5iffgjIq=1oG2aFLiDEQ~8!s^8^YeT^|i2{m^+_I&4Ygnio4WSe0+r zT3W&XBYK6xtQ3Ddw@2pn2~g$or7VdY(#~hX;x{V|R_v?qr?J70o?{V?010_z8vtiXMu4iFbJ86QdB-dwR zP%>*1R>@eKkAZM=#_PCeC1G6%)9mp{u1{)VF9zoAEdO$+yIu!63&RpFglRGb_C?Ui zv+yX?&mY^Z0~YJ`JR7Dgc(FD7CWY$y;!WscT4q!LSai{)1KtMev+OLWOjwem8=)yz z`qsty@IZ+7G9=9uadIIuYEE;hm+=$V@K^hmvjr*_7Ny|u zKH9`$N}0DJ zbZ(B7q~fhEg;%yF)mh_{lebY^{tSzfdt@4{wnA=cY+8Ioo$|;&1;c_vhp7@I)(6>% zxyuNgN$_)?m^HU&4TV|sl9Fe`Ep)2nbPyd&={sB8#>F*IaJfwcUF%NtKn0l&^Rh95 zE~!Mxi;e=jq~wiUG-M~pUV*LUmti0e)<&8n>8YF0iN8}DqH%0x2~i6^l#C=FZSa2+Sfg)gU=nx9x@W4>ii@j+bBS3-3=6WgL@W7S^oN$hR%&aLo zEcn2CXiE49$58Mt=yM5)sMTnYta*z%?k2#s0nO%R$nN3!?saWVO`YwM@7YsySdi|& z8ixn2H%Mbpr;f(0(8Ed0q6D+;bmZ_*KCH}}=hRi>9%tSQuq$sm%+tCRvB^VJM5(K| z)$s&`b`s4s-hUr;A>K8-Gi~g(=Us4;3Rd$un#`_qEIOasYF050Bcp?EqLBHshiGBd z&F~o`uQuO8NK~*k^;4By#^Hg<&@ZcWWuw}{C7^L7UF$XcOoqwO)R1S_q8o;Tmk>=g zt<&@2fyvZFwOumjbt@PQ-;-U~uC}JV6go>dMp(};Q%-fE6IfqcqkdgL5Ja`h!^8;M z4P2mceHK-zTvtyFCR5>oSiDKwLC=xYIrzMM*Fl1nwM{gVXG!5=!-C_Z?5nBFS$FbWpBUgg7J?f+ z5m1CkvzTvn&b(l~)cXCmvxLC)If-7y)n3IAUe>a@B;DmBSv`GS_PF1it)fV( zRIV7T|NZTI9=|7D9{<2QxoyxrhIS>BFAt^60N|KTxZzLYfutFQV^DUy7AFR*zZOxR+?~vSd z;9J?-s#W_W%k?|73^!Gd=M+2pYx#)Jdc4m3h7XD2Y`CD-A5a-OfTr-84LgrC`* z|I%{FV8IPt3k!QXmjukJ)vF1r*@$n*tj^NdyLr!^&Ao+Kg)beftA*1OIA+9P#oJ^K zSk6*HSh#xND0Y3UF=%nQqdtMC9A2_}i4_M6j{g$6DYeuC^iYs|YnO?v;qD8S2MdP> zb|q)GWT8_(&_K~kG7`tayN_2KEPQ-q7j}I_w^yI6IvfJ-0Kpjh9y+$A;$Xp#OyE5- zNi;s3qv&H2nz)@r-=T|w;$i)&+%F)WM<^K+;0WQkQ>?UzGCFteDyN>6C`!+gY`e|)hMIo7D2(V;D+!|C>-6vdDq8gw`=7z zoERNaFf8~zsseT55jIHU#Y{bU@vMSjQOdwMglI7D$Rj+kOkmMeZM~624^uQ7+8)`Y zXjr%R(-eMxjzteqP#zk4TG6o1o@8&Qaeaa%S=cM}F#O0w_~SHFX#}058&l&7h6Tlk zUpq}Rxkb<@&2#Ty&nS8}yh7!SOixlBE-cbz7Ae(qSQt+iQRHPh*P&V2uxNHf&t94< zoGw#Ng}8@>2wkfm9Cd23wRu%7xM)gIrO zAp3BsJ&F?OtWBdVjVbUti@re>({T1d1;fJC4{7Rn-V&iZ5pnNpV+w`^x16SGwl9J% zQOs_*@OTB84p&_tH2N`$c7GkdA}Sl!Qxt8cCD&&sjq9-Oc16S5F<&1_UaReBlE(F! zF8VNh*ZUUB+tha+lV1WvlED*ndt^n2_31z9TO?nhzx9S~G^?OnCQy)Wb~`m*Ojy4= zoLTZ>czEm9-^}CQQ|JgqEAehNNV71uWwL*~h_Jrh_xQUrjf$;fmOd)DQzWxny*%lW~gmAx!#eUZE?#{6*xByh=~CpQ)m*1KVvLVp{+)0aQ2 zA(}XwH-ju`cwo%S0ZEc)>JFZqEh?-GDFm!5+h|<3TUfN3%=IyFp_m2CJxlYDvSA6k z!!)MAOOaIdKoUuSxH?{l;a_rCP<%N2M~~g{ScZI*U@Dy?4G+`+kBYmRkazYj1;c{y z+%IHVBz;>6Y~AU8beKfn#awE^1g;jKKfUUll3~G54`(J158p%L7)Y*9BzLt`E5jL~ zHvRO@(^RfQ*}(cP6)ZS(0!4D^J0rtbaUFyVQy%ResZ(hlWl?(2n&j>>@u#87zbKdKv6iXWO!ifQu^AxTsrL7)QZC@ zxVw`ttYqQzYtu?rw^_2+&2HPcvaqro=}%rR16XjZ3$4CZIJ5yQTe?h`kR2W<3s&EU zUdWKIWiQdZ{mu*7^3Ho7TVYu6fgn1uNM(x#V9BBHj;z|XawBA5u4fHzeLh3BX0MdqE4}r6mh^pi#bLqQ4x|1e zga^uj_5Ek=T_l;GxL114uiSg}W6#|CuHnA#tURn_c;H}J!OATdR^~fDD-J9;bO}AH zKv`Z^(wAY0IbJ~1q%*79Rna)a5wVns;R^~7yg7tXcqQ$?DKS2Xai<3gEb{iv&MT=VP7oa0*g3#}V-T-vO9d@-&(5d4N zX!IB%jKxLKo3N-ug5IM}C@5mP6Vo?6BPmEDTrDyi(5-wdeB1lBd=>?k`W9~QKPpy)B_T~Ln)q+c42 zB4@x0@KL|S%qk60N%srDYQ$_3E>Uzzu6DpBeKx99E-WYWOf*-)Zk0$yB_QsShE85m9!qi$#ffs}%mVA-WV8zpm$aXYjgP7v|A zZaUlnIongKjx;O4f?ry8$SIiOh-0NBY3xKC3I?^u=I{s!eEyNvBf4$SivMge;4_gN z(BxJdG+sfpOG;mhd!bto@0t}9;2SP28(*W{<5PxFddFAN<#Txs!wtkq(him4U@ewB zb=DM1miB96OoiYvbZop>u$~!SBwH`%so)RvlkAA9)J#F@Z$7cync@ZRSwHx4w*25% z-k0b1CxIYDK@m=&QB;P-(yW%)d9F-Yk1X%{cnNo&#Y%uBPAnT97$PjhYz4+j=vgl= zSNPok2-l2Nd7fIW7@hU#l9^rp?49Si&&^ka6X$-2c@IYADEJ$$4Nf5)vMz|Fc#VVWoD+1Oun^q=YWCBK)I?a8yU4^9*Jf4u=HV4b&PlF|mUC~tuu;BP)|HrOc zO@4L8c{6FSL>-q@V#Xvaym0}2(lC^IT+~)6!%!NC7oVIjjhg^2&T94h7I+1)&SLyH zr$UIi{8~#CZ{t|8m+jUXI4;?<7(5IqLroQ@;J2I{Td=PHrv|{Y04o{o?n_90&Mm;0 zJ#G^%F~N(CcG2L`=^1ErtDp}%k)c>+z=8{jhEV{b?gWVg69~b%4X^U_4S(-li>1J3 zm&Hc9+@}GCL;&llqvZ+f%a?D?Tm-ziZ}^#lfqG76;dh5S8Y;kg*Gj?q(D2rqGh}${ z)_V)*`cM^qZ@%)4ho;IB*5$waT!#FpuYj=NBjHvGcX<48II^KEVf|I+8}D4cr+~2F z1L0#7W%6kYr>{7y52pY6Hhkgo^M!;3H_XzkO*KD+f^U|8&w8P-J&RV3{uogfPOm^% z5MDv(TqVL9Iz&?+YF7|Z#snxD*4gdfq&Y+7t{^*qTy7-|!{*sAO*O3zsgsy1O=pQ0 z!jDiin`(v?2n!B;VGI^cDsMKd!m7d|HwJbeufigC6jyIiHmnb3!+L(@hT#<2KB#0^ z!}okQLmuC{g0SH9eUtYq7uMsKvvbS)`kq{in`iaEq+GhUa&5MBuv{%~X;U;@`AEV!%iha<;00OF485f*&C@M=pi zFaQ{YWnpOn6IY(t|4aJu?}fdj-30(p>&0bYsr*2x^3|2NXjHWfEGTOAS|y79&)C2D zswgx51H*nFmNix4UTcc&^cd_(1nK(#U-FyMG*zeQ6~u!R0^(KOQnkic5q zT2Zi$ZlK%6@PTN|bpOzi^FcL!lIP_2b2HY#NxW1fdBvi07*qoM6N<$f|!PA A-~a#s literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_svm/py_svm_basics/images/svm_basics3.png b/doc/py_tutorials/py_ml/py_svm/py_svm_basics/images/svm_basics3.png new file mode 100644 index 0000000000000000000000000000000000000000..1379a56d52442a73edc1f43844e99017ab4475e9 GIT binary patch literal 10353 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 0`, it belongs to blue group, else it belongs to red group. We can call this line as **Decision Boundary**. It is very simple and memory-efficient. Such data which can be divided into two with a straight line (or hyperplanes in higher dimensions) is called **Linear Separable**. + +So in above image, you can see plenty of such lines are possible. Which one we will take? Very intuitively we can say that the line should be passing as far as possible from all the points. Why? Because there can be noise in the incoming data. This data should not affect the classification accuracy. So taking a farthest line will provide more immunity against noise. So what SVM does is to find a straight line (or hyperplane) with largest minimum distance to the training samples. See the bold line in below image passing through the center. + + .. image:: images/svm_basics2.png + :alt: Decision Boundary + :align: center + +So to find this Decision Boundary, you need training data. Do you need all? NO. Just the ones which are close to the opposite group are sufficient. In our image, they are the one blue filled circle and two red filled squares. We can call them **Support Vectors** and the lines passing through them are called **Support Planes**. They are adequate for finding our decision boundary. We need not worry about all the data. It helps in data reduction. + +What happened is, first two hyperplanes are found which best represents the data. For eg, blue data is represented by :math:`w^Tx+b_0 > 1` while red data is represented by :math:`w^Tx+b_0 < -1` where :math:`w` is **weight vector** ( :math:`w=[w_1, w_2,..., w_n]`) and :math:`x` is the feature vector (:math:`x = [x_1,x_2,..., x_n]`). :math:`b_0` is the **bias**. Weight vector decides the orientation of decision boundary while bias point decides its location. Now decision boundary is defined to be midway between these hyperplanes, so expressed as :math:`w^Tx+b_0 = 0`. The minimum distance from support vector to the decision boundary is given by, :math:`distance_{support \, vectors}=\frac{1}{||w||}`. Margin is twice this distance, and we need to maximize this margin. i.e. we need to minimize a new function :math:`L(w, b_0)` with some constraints which can expressed below: + +.. math:: + + \min_{w, b_0} L(w, b_0) = \frac{1}{2}||w||^2 \; \text{subject to} \; t_i(w^Tx+b_0) \geq 1 \; \forall i + +where :math:`t_i` is the label of each class, :math:`t_i \in [-1,1]`. + + + +Non-Linearly Separable Data +----------------------------- + +Consider some data which can't be divided into two with a straight line. For example, consider an one-dimensional data where 'X' is at -3 & +3 and 'O' is at -1 & +1. Clearly it is not linearly separable. But there are methods to solve these kinds of problems. If we can map this data set with a function, :math:`f(x) = x^2`, we get 'X' at 9 and 'O' at 1 which are linear separable. + +Otherwise we can convert this one-dimensional to two-dimensional data. We can use :math:`f(x)=(x,x^2)` function to map this data. Then 'X' becomes (-3,9) and (3,9) while 'O' becomes (-1,1) and (1,1). This is also linear separable. In short, chance is more for a non-linear separable data in lower-dimensional space to become linear separable in higher-dimensional space. + +In general, it is possible to map points in a d-dimensional space to some D-dimensional space :math:`(D>d)` to check the possibility of linear separability. There is an idea which helps to compute the dot product in the high-dimensional (kernel) space by performing computations in the low-dimensional input (feature) space. We can illustrate with following example. + +Consider two points in two-dimensional space, :math:`p=(p_1,p_2)` and :math:`q=(q_1,q_2)`. Let :math:`\phi` be a mapping function which maps a two-dimensional point to three-dimensional space as follows: + +.. math:: + + \phi (p) = (p_{1}^2,p_{2}^2,\sqrt{2} p_1 p_2) + \phi (q) = (q_{1}^2,q_{2}^2,\sqrt{2} q_1 q_2) + +Let us define a kernel function :math:`K(p,q)` which does a dot product between two points, shown below: + +.. math:: + + K(p,q) = \phi(p).\phi(q) &= \phi(p)^T \phi(q) \\ + &= (p_{1}^2,p_{2}^2,\sqrt{2} p_1 p_2).(q_{1}^2,q_{2}^2,\sqrt{2} q_1 q_2) \\ + &= p_1 q_1 + p_2 q_2 + 2 p_1 q_1 p_2 q_2 \\ + &= (p_1 q_1 + p_2 q_2)^2 \\ + \phi(p).\phi(q) &= (p.q)^2 + +It means, a dot product in three-dimensional space can be achieved using squared dot product in two-dimensional space. This can be applied to higher dimensional space. So we can calculate higher dimensional features from lower dimensions itself. Once we map them, we get a higher dimensional space. + +In addition to all these concepts, there comes the problem of misclassification. So just finding decision boundary with maximum margin is not sufficient. We need to consider the problem of misclassification errors also. Sometimes, it may be possible to find a decision boundary with less margin, but with reduced misclassification. Anyway we need to modify our model such that it should find decision boundary with maximum margin, but with less misclassification. The minimization criteria is modified as: + +.. math:: + + min \; ||w||^2 + C(distance \; of \; misclassified \; samples \; to \; their \; correct \; regions) + +Below image shows this concept. For each sample of the training data a new parameter :math:`\xi_i` is defined. It is the distance from its corresponding training sample to their correct decision region. For those who are not misclassified, they fall on their corresponding support planes, so their distance is zero. + + .. image:: images/svm_basics3.png + :alt: Misclassification + :align: center + +So the new optimization problem is : + +.. math:: + + \min_{w, b_{0}} L(w,b_0) = ||w||^{2} + C \sum_{i} {\xi_{i}} \text{ subject to } y_{i}(w^{T} x_{i} + b_{0}) \geq 1 - \xi_{i} \text{ and } \xi_{i} \geq 0 \text{ } \forall i + +How should the parameter C be chosen? It is obvious that the answer to this question depends on how the training data is distributed. Although there is no general answer, it is useful to take into account these rules: + + * Large values of C give solutions with less misclassification errors but a smaller margin. Consider that in this case it is expensive to make misclassification errors. Since the aim of the optimization is to minimize the argument, few misclassifications errors are allowed. + * Small values of C give solutions with bigger margin and more classification errors. In this case the minimization does not consider that much the term of the sum so it focuses more on finding a hyperplane with big margin. + +Additional Resources +====================== + +#. `NPTEL notes on Statistical Pattern Recognition, Chapters 25-29 `_. + + +Exercises +=========== diff --git a/doc/py_tutorials/py_ml/py_svm/py_svm_index.rst b/doc/py_tutorials/py_ml/py_svm/py_svm_index.rst new file mode 100644 index 000000000..5ee69affd --- /dev/null +++ b/doc/py_tutorials/py_ml/py_svm/py_svm_index.rst @@ -0,0 +1,42 @@ +.. _SVM: + +Support Vector Machines (SVM) +******************************** + +* :ref:`SVM_Understanding` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |SVM_1| Get a basic understanding of what SVM is + =========== =================================================================== + + .. |SVM_1| image:: images/svm_icon1.jpg + :height: 90pt + :width: 90pt + + +* :ref:`svm_opencv` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== =================================================================== + |SVM_2| Let's use SVM functionalities in OpenCV + =========== =================================================================== + + .. |SVM_2| image:: images/svm_icon2.jpg + :height: 90pt + :width: 90pt + +.. raw:: latex + + \pagebreak + +.. We use a custom table of content format and as the table of content only informs Sphinx about the hierarchy of the files, no need to show it. +.. toctree:: + :hidden: + + py_svm_basics/py_svm_basics + py_svm_opencv/py_svm_opencv diff --git a/doc/py_tutorials/py_ml/py_svm/py_svm_opencv/images/deskew.jpg b/doc/py_tutorials/py_ml/py_svm/py_svm_opencv/images/deskew.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32c22b7afe9dcf7b00d2ae53afd000605c428708 GIT binary patch literal 11383 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 (HOG) as feature vectors. + +Here, before finding the HOG, we deskew the image using its second order moments. So we first define a function **deskew()** which takes a digit image and deskew it. Below is the deskew() function: +:: + + def deskew(img): + m = cv2.moments(img) + if abs(m['mu02']) < 1e-2: + return img.copy() + skew = m['mu11']/m['mu02'] + M = np.float32([[1, skew, -0.5*SZ*skew], [0, 1, 0]]) + img = cv2.warpAffine(img,M,(SZ, SZ),flags=affine_flags) + return img + +Below image shows above deskew function applied to an image of zero. Left image is the original image and right image is the deskewed image. + + .. image:: images/deskew.jpg + :alt: Deskew + :align: center + + +Next we have to find the HOG Descriptor of each cell. For that, we find Sobel derivatives of each cell in X and Y direction. Then find their magnitude and direction of gradient at each pixel. This gradient is quantized to 16 integer values. Divide this image to four sub-squares. For each sub-square, calculate the histogram of direction (16 bins) weighted with their magnitude. So each sub-square gives you a vector containing 16 values. Four such vectors (of four sub-squares) together gives us a feature vector containing 64 values. This is the feature vector we use to train our data. +:: + + def hog(img): + gx = cv2.Sobel(img, cv2.CV_32F, 1, 0) + gy = cv2.Sobel(img, cv2.CV_32F, 0, 1) + mag, ang = cv2.cartToPolar(gx, gy) + + # quantizing binvalues in (0...16) + bins = np.int32(bin_n*ang/(2*np.pi)) + + # Divide to 4 sub-squares + bin_cells = bins[:10,:10], bins[10:,:10], bins[:10,10:], bins[10:,10:] + mag_cells = mag[:10,:10], mag[10:,:10], mag[:10,10:], mag[10:,10:] + hists = [np.bincount(b.ravel(), m.ravel(), bin_n) for b, m in zip(bin_cells, mag_cells)] + hist = np.hstack(hists) + return hist + + +Finally, as in the previous case, we start by splitting our big dataset into individual cells. For every digit, 250 cells are reserved for training data and remaining 250 data is reserved for testing. Full code is given below: +:: + + import cv2 + import numpy as np + + SZ=20 + bin_n = 16 # Number of bins + + svm_params = dict( kernel_type = cv2.SVM_LINEAR, + svm_type = cv2.SVM_C_SVC, + C=2.67, gamma=5.383 ) + + affine_flags = cv2.WARP_INVERSE_MAP|cv2.INTER_LINEAR + + def deskew(img): + m = cv2.moments(img) + if abs(m['mu02']) < 1e-2: + return img.copy() + skew = m['mu11']/m['mu02'] + M = np.float32([[1, skew, -0.5*SZ*skew], [0, 1, 0]]) + img = cv2.warpAffine(img,M,(SZ, SZ),flags=affine_flags) + return img + + def hog(img): + gx = cv2.Sobel(img, cv2.CV_32F, 1, 0) + gy = cv2.Sobel(img, cv2.CV_32F, 0, 1) + mag, ang = cv2.cartToPolar(gx, gy) + bins = np.int32(bin_n*ang/(2*np.pi)) # quantizing binvalues in (0...16) + bin_cells = bins[:10,:10], bins[10:,:10], bins[:10,10:], bins[10:,10:] + mag_cells = mag[:10,:10], mag[10:,:10], mag[:10,10:], mag[10:,10:] + hists = [np.bincount(b.ravel(), m.ravel(), bin_n) for b, m in zip(bin_cells, mag_cells)] + hist = np.hstack(hists) # hist is a 64 bit vector + return hist + + img = cv2.imread('digits.png',0) + + cells = [np.hsplit(row,100) for row in np.vsplit(img,50)] + + # First half is trainData, remaining is testData + train_cells = [ i[:50] for i in cells ] + test_cells = [ i[50:] for i in cells] + + ###### Now training ######################## + + deskewed = [map(deskew,row) for row in train_cells] + hogdata = [map(hog,row) for row in deskewed] + trainData = np.float32(hogdata).reshape(-1,64) + responses = np.float32(np.repeat(np.arange(10),250)[:,np.newaxis]) + + svm = cv2.SVM() + svm.train(trainData,responses, params=svm_params) + svm.save('svm_data.dat') + + ###### Now testing ######################## + + deskewed = [map(deskew,row) for row in test_cells] + hogdata = [map(hog,row) for row in deskewed] + testData = np.float32(hogdata).reshape(-1,bin_n*4) + result = svm.predict_all(testData) + + ####### Check Accuracy ######################## + mask = result==responses + correct = np.count_nonzero(mask) + print correct*100.0/result.size + +This particular technique gave me nearly 94% accuracy. You can try different values for various parameters of SVM to check if higher accuracy is possible. Or you can read technical papers on this area and try to implement them. + + +Additional Resources +===================== + +1. `Histograms of Oriented Gradients Video `_ + +Exercises +============== +1. OpenCV samples contain ``digits.py`` which applies a slight improvement of the above method to get improved result. It also contains the reference. Check it and understand it. diff --git a/doc/py_tutorials/py_ml/py_table_of_contents_ml/images/kmeansicon.jpg b/doc/py_tutorials/py_ml/py_table_of_contents_ml/images/kmeansicon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4bd77683a82a57d0a1bc4af94dcef4f1648fd6fc GIT binary patch literal 65638 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�W{B%wC(B1~N;=7Cswy|@3Ot%< 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 FKL9pF)0O}L literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_ml/py_table_of_contents_ml/images/knnicon.png b/doc/py_tutorials/py_ml/py_table_of_contents_ml/images/knnicon.png new file mode 100644 index 0000000000000000000000000000000000000000..61e4dc040bee25e5a7ecfd443ee42d5302f7d53b GIT binary patch literal 3424 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture7.png b/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture7.png new file mode 100644 index 0000000000000000000000000000000000000000..be5822a3e4df19efc95880ff43028edc6d35b566 GIT binary patch literal 7871 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 FzW_L%t%?8u literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture8.png b/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture8.png new file mode 100644 index 0000000000000000000000000000000000000000..def47a691b56f81223d8e60ca773ed25463f888c GIT binary patch literal 13134 zcma)jWmFu&)-42gcMt9w1}8vp3liMj-8D!c1P=svcXyXTg1bAx-5p+Y@Atj6-oH0% zO%F^r)m=yS*=JV~_EkX=1(6UD0s;a>TI!231Oy}qcw@lB0^g9%Zx8?<(9WXLs_?+e z2j1i-1Oz#R^cN9TkF=9?Zx8I7_BZ`hB*=h`{NOrFvXOlSKBw6z<`3{Z}TPb zpKp>x!(`gQf}PxRLbt_J!!1r0h}i~Z38G5FMvRv6@WooJX)>}w{pE;AMz-+zMs!kx zrvCmTr)F-owTZ`aZZ!{W9v&I1$%|)qoVCe!ejSZ>8bZ%i)6rwsw>OY6>3{OwCj$+v zDtw&UD0YPWd)dW?MopZM>A$%*V+U^rt%;h%8<_F^)=Ca;?-2X9LvW?dITdTo&w=5H z1x-O2o5{I)Zd^@w;@G*4=~dn~e+B{@9ZW}k9`G6wExU>Y+w5gp9GivntFRR}S-LK1 z%4t{hZ538jpnf+UPJnb6{WO1mJ*`-%ar^o3@Nl8S*L(jZjn`S!wE(MgJ(_wb|N5yL z(^fK2$9eRVV>J5~pV*-=&4rQw<3VBW97SLvUjbI*>8Xl~i_65~qO`uj%qK?1@aJbA zL`1~Fzkf+)B8^m=tqfI=qLhrb@3cit?bka5sciiGOFpFY;f7OFIrzUlt@C@Klo;m*fa3%Jnf|G4gO+-CI zi8B2&b^WZc^oU9*la)$Hr^~r=Xqp!yJqgPgx zESW(mRl1ISc%t6DFk^~`^7@}}dtmy;3*=Khc9YF{{GNFrj0d82N=hq?UY{QzFF3ht zy{|?=pYEtB9n1z70tFuTbF=4T<=^B}xly$CKO!J%q35=6N)XcgU3msf9*i(iD0D+l zBbU@AN#+ZNBlAIDTAQDj1YYEvKizv#nbb>ZMx@6)hcr;Dp+E4V?Q_ly#QS9 z{Cw}&@w9rjb@c!tKGPpXA}c8gm&$Exv^SPsrcvF4Jv#SA+Pok3fb?hRF~LCX;hdFoNM379*&k3PuTuIIFem;YCw}$uGlm zm%vAe447u0XEau;FCT=ht^JnQ;E(Y=8ky6sR?4K8%>>oT?+~eB7b= zXd{w?l$HT%{Al-CY5{PO7vL=Vb#&NWpA-O-tA8A8um`aiRfri_z6R0lIB z8!K<#UuNebRk-61oHw_ z`%y)!5vltyb0d{b!K_vOL1eF7`-|mRkyl`Gqwpx>Qxs~dHHQwnbY?0Cb8clNYuVqT zS*B4LBN4x^N@R(MKy;iGtTSOA$;H?aiZVf*e&O1!yNv}8!GwZla ziX%jujb#dF9+7$CD30P_XT~WWJ*D%kuvWd9&reLRmcE6-e-8sQ3kwUoI9uF=6-SfE zHH*|eUSl$XeDXMWukji;BIoCBY22Q!*_3Rpz2l;yPywr?e$~AA!c0Q-(ZUOv#R4I9 z4*I~Pz%qh_KVd9dQOPIj^6s0Df>1hH=2n-mqSI~g3N|HP9a~tFCLJ9ee5%1yHyoLT znJo+q3>6JF)bK0=f3wqQz&e_`t}6}@s696^jECPp&<*S_wqvE0m1YdP&1sq|X=oJb zQ%h&<`BZuIa3{3{3bT}-xrcBxKC|cUpPy{9%nI;{=*xYyi%I22ES)8ER?t#Y!&NK& z6xM9f|Hm4&CP~;|h~NDbym#dYL=Blk@T?UIGR^*SJ0ZOT5S!VJjiBygt}qPy^RB@I zaw|jGoh9ER?e#6mT_Kf}-{rpY-d9Al?{h$+NwC=jM|y(bbhM#fe=a|ZH*Y)JT? zpJRQHlwLVPbWBvmJj;>k@t}+Avo=(s{VF?O0ZAcLfCYld^}D!Xoc9?vuHo3)mEQA` zp*(y&pM+^iq^An8RHH+tH4&*LPa zn*lMIKR723>15Q#g1MlefaiMcWKCl8BVNVUt8t2UcGUv@CUZsEW{fw~C}+rGJrJsb+XouQ&bLx_tF?X!b2 z!4y=!3T=IyNzHzOL@DOTHi*!E&3|yE{cEdSgW_K2wsJmWNjy-S(;Tnq;`4B~Nn_1% z9qqHWI@raVN%c5detP)G8NTtv!M74Xle_%4AvxUP8>U~G*+T%wE^du&suN^RKPk?R zRvj)}l>O@W+UD;mDbhCX+$vQ?Npm;s6_O)YQBEhhe(sYUxv%%Pb)t@@S!=g~bq(V) z=p5f_`L_sf69vV#32n@k<-gpC?rTA(w8Fq(H;^e;h<{L5V*^}J`LIs8~L94GO&(hN3M)8;A{?TP?H!Bjo`$Kc9LkDbQa@?7M^QjQ5) zeCFFOM?2c(?^#XpvrIX?&FOPB1jm|a;X0<+Q-pqkOR0{Mwh4XFrEg2tzV5LD#Rplr z?J)$0qlY8B+1B`^y&2FQkww@FIaR)BBtM%>KUliK(C3x)i)(sw+BL?ZgzKo{66d75 zxrN$&HP}VYV#~?xjA<@$`epv*`4SDiq05{Bs&fkPnlxu<&a0etU;Yps;xJumbEKfx zD#FRd5Ua^)TGtp)HQKv%oF+-r#%@M*{wX8m9C}%#D}Hdi(f2MtW7%qIn$Mw>4w$6l z|F{h$lIWXE_aSgtx2P(>Nb&+iH)tQv zuE)`oBOsMetCWR4Cz6GBGWr`&(3U93TZ@rip+1_K%OH1>iR5!UlQMn-K4;bjZAV8v z_cZaNw5_?KHUAG77@6tst6X%T=s8F+g46qs53c6bQN{)2L47;BADwx0Dn#ZBuDT7f&}0=0-Wxv8$BHL0kE zIv;&#$gIY@Jr2c69yv;jNct)Jyqn5UBd){D@`8#lO(CuOjuUTFc~|nQCMTYI);MEb zr4y=i>S|N^a+U)P=O=$%Bq(3GmrO;g3iXwyz^C}#^)917sngAC#Xpxul1GkN(+D`{ zYxQOcDoS{|FSoN#or8Ls!|CjF6`xiJ8R+v2>^SY*IX``h`!0&e&%NOS+w#_%QWg|e zs3`OC03!)+)K&6TAB{7ogRB(6&Ul#hC1U8F0iDIX6-35U(cXTh3A!90cB zjb1xcQDFyhdFcdMExIpP)8@l_enb>De8n z!^ZBT9m49;Dt$~ImMtH(rN?N^;-!kcPbA+V*Hcr9=B3$?r@3Vz1yUQST-&x=tn1ws zf|+YK;jA|s1Mb|HA?z72Zfl(oh!;Mfk-?(&)?44ugBZ9ye7S9q=R!a7X@9rY|5P*< zR<)z$aVDO$bF%K%h(dbX?K^kgTiMVv+;MLz!~@gOfpCmvsCJ$LGj?Xh`V}?quB%KP zYI(1#HZ@CrJ`O2n>kju8g#KflTV&Fw=}Gs*82UvjbM*eJGj7^4!Wr~BSxBfWW<&Pw zY4Z7H_$FwucR7F{%rrNs#5wAtjeAk0<~bp0K+s;uysj6^@lR*plRZc{>})HQ^1LJNlTV_>7nkuftm+VMkWS_Bh0^#iN(X8yk72Kq)Q6%^fFM;^f0Mg z5lpD}VAnc`J+a_^KAWO;WI8eH!0Na$Gx5OJrhJTwRC*nvb}&F=f)_~I*~r*moF_?r zG;S9lBMpx@V{4m15Xbs6&zRU1fVX+MDAR7ZBLT)5G5cgZS;Cofs!a4ehqSO!6XYOi za*W~Qh}c%=yW#dkT{33F59x&KLstE2JjT=Z{x z*1@wkfm*m%lrN;tlINiY1ygd0+)vN{Vxj(J^7M2{W{$1XD#%_=Q=(1ZHm|zQ>r${o zi7x;RqehJh0&B;$=t9SrW@F|yE^3)fg{tOyTr=B%zqN5k?#;&Kzb$Q6a-NkWF)N>8 z3gK?s;rD2M`xbLfz!#+DGq}^N5EaD{ytr1h;p#0->Fqrl7|kG@A44Yjgk17v z)6la~liikZG#L1=u_~(TO0wD<2R|jyZDBAH&G6}e|10_D>XA9je_d<-;Pk=aA)xEF z{+9*HJyBJ6V02G36-vc#zot_I3AJ-`E3hiE@96J;+W<1>?^-C%=z0KJTaG8ctF z)E7?=mCwjNFHl16k9mSN1qRV7{892CW-OR|F!1>ynAOYL*i(p0CD3 zgUj>sT+V+i_N0>Pr+t8n&f&uPYNrE1(=$q#z6r?7_q1N0nEXSyIqj&Afl<5xV(iM;|7BI)67u>k3>9hDF%QPVNS>K*58X9OBU0 z-Sdlzn*7XFB-P}Z*byI0u+Zeu{4IlzucCikdKeq80+xO_mglyH(>T(#$=(M)C$Cmd z*GGX@Ef<2^7DcC>ib9Q-PE(tgG3*4-j?u!XW3n&I$-PyCU!@ROxO(T8h zZ=fR?s2o>YvtPj!EcNtgbQ(FT{WIQKw$!*yzEXH7rxs`N@HcIkDL!JOqpKiMKiHbm zZsJZsJqqCzZI0jdt`1z*xwi*$RcFh4RN+&AR|I`e_#S>24hCps^#P}%T-Fr9hL?N&5>usGHfa6TB- zd79$u>Y=t5lDsM-DtbO;*?m2b?zkMvm3urV2MOL8LI^uAXPDH5{5LCpLKRzv+kQ}h> zv8{MR_-ST*-sQoDPU#f}72TH(Ls1sdBc3ns>3p`H%*Q_S{gJ7E<6H5tO^JQx{YU@# z9`m%#mr{AiBT?rvL8dFgPZnq9|p=KEs=eNf?ZlO7lI(f$)iKtKJTT8*?aQ3xW=~o`C537GdDU|U6~Dz(|TW-U3OekGrc{V6H>~f z0ZfK1;-FkPrGU5d9_ISy#-5ci_vm5oBGVaFli&UK-49lShvoGt95XF8-CCFV3SAwK z%^xj&HJjGaXot>!Iy26+hpiLZEE~ zgRkTMh|iz-kN<6Gfb470tu+$K_#_EeO97^{4?oVY*yP+822NEwiTDyU0GV_C} z{1&9NwR<jEmX+d@K(|$NyeG6giFRaTo*5A~rZyuzXVR zWG) z19Pz3rAx;0#}-bj`&*1E9Wn-`CDm+vG7;Se_i1@hwabBW6d>z3d1j1i_mJ{n`3NT= zD_H(sDyFM9N;iXAvf%o%DxkV-voNGvx0xjryPH3TKmQMRs!xhQ`jga(vcKp^g>I|I z^TmKCFfn{#KZoJQ2#N`+d=&L&6zzIAwh~LiV`u9g%e${6+(m3$3k90nWK_ufkFQt4 z2VR>nk7i@w8hbL&{Ct!4d!v@#DI75{^Eb=odTTt{M3$WZI8uYPHczh~Fc#)E2<8sm zG)6^G9nuGx9Cel{UpOcAz%%hjNQg~AHQ9=|KPWyyj$*e{=zI zHjcQFX!!M|*H6BLf)V@G_n8V}yFUu{w|4gViu3pZgAGx~t;a}M^CbABI2AO62xIu= z_v*?>k$8AkZCpn<%hrsF;^rHec8X*!i!HtBAhJ18zy7OrX+KuOs7SkeGZ);Cy4ah3 zq6jCRDgZZLEvNUF+6dnKpCwy*Wl|#WKqBbBX|d+=Qk*a=$>9&Eu_Tn`d9@he0}=3d zDU08`8w<{e`Tse+Ys6C_{Rcpm;9z_^Yh@GyX2Dx~(>j;urhk&MePQb8Bcl#LU|2-; zZ`?Tj{Y_n_+p4A>prW`XZzA5K0Dpi=5arco81u5xC*0+ICTgnR8gG_AZ^|D!=)(QAD$Gy4km^3huzA(HhNE3`U`XJ-n6nfhGJMlpno%H`V<^GY@!MFQ zgvSZj)Cmv@zie%(YP-`r+=2g)m5y({&*UeGdvxb$t|C#e%QD$%BpOVpUbl>`kt8{tsb+ChMs+IJxhw0X7Q!R1vl@78ZC{3Oq}WoL8!!H zm?5u^$3!Mh@R$9k%D0@OA9&~fyPQKIj@wg&(e&zdL?>V*tG2PAAQmc31xYIC|r={If(W|WeG z5+gTD^<$TMOUwRTuc#vR8{!|k*ksgRRj&VxP5ParQZ_x=81431JCMS^&4?zdguHsJ1s zAEawuFYzRp^+xu$jQS#Pa-+9&&_vi+L(0DH3lt#3>_w|H{pt&w_xZQxFU%|afbd$Z z!u#O=2G`td^0o{5SEeDNrk(2a)lWze32(}IfTZA_8aLSFKgr9~Ih9o!-Zt)^Q3hJi z+iO_fce`;vHEq8{z(r)+3PtY7y`cvEA+U%d? zA1#_6JU#FA-gREUE?UpUTpj6$(wN=qIw1%)u1cKEs*Aa~@%7*a2ctU@Z6aG_NDy>1 z5(~+VE!CS;Y6k5LVn95rF$y-W$&8PJdKaq2i0jG01M!U5!P&V_{Oj5Fk1kA4cX3ZI zXOe>b!j2zT@79L@y07odw7A|2UlA|~ku@vO8vpt=*uF=~bk->hjzuci{3q>X-~NZa zFulJBX7Z`AcFikX>Cc~kx}MaY&U?RA^zHBYRD)F?uoW(bQL#feG#Ge@rZ=*PY40j}t3VxF#| z-VBeWWjTUw0#yNt3c>*7^X zLDM%&*4HaeNG9fSCl@j9eK`L{lf@bapxWEToIi*z4Zil0o$u|u*LAMwzmBaG!kKI0 z;Sl?+TZjsz0#b?_?MnDld$&q^2oN;?7?05N$8GV?F9sqyu9d4a_8&*>&lOV>W(Jr^ zNdA>+OS<_ACiuS~LHH|S2+Af-U9G>N)X;pQtafqR8Xt!<7_lsz^d9|`wuFBg%JUeA zbRJDo>SEq@g?j&Tt)@0r>rz}@oh-is4g>jWta+oo5XGN=Gb=d^0aq{j;J z`t0L{$C9^K(R!Zg+n_LsXeK7R(x2vv>+{UM%BVJRHERF+>MAqNdtTS&?S9~zN!v_A z09X`8Vr~1XPP;ZJ-4@1oVHKV_bdmr|yc4O)?6V)%p0%>$HWj4q9%In5&OjSf3!$-WJ7{NYEJe`o{5c6oe8!;Noky>$Vly zrS)SV^}7MJmkv$rAMvxqjxY0bDPo;u5PuAKSXGwi8#<3D53 zOaQAehRcs*2JFoJ5D=IT?|T9G#~oy;-f>%)R*!<)7f+|FSdw%TAjQ+pXYKdnJV9mZ z`ld7LokRObEac|13_L)*8Y04Oz8#yx@qE@sB?Sw6)@0wLD6fP>W7#9sb4xaf?7YGf zL*bT(lFchGcUG<9a=2ejZtSmD*r57UP-`XAjjkH-HfU+7y3Wq=sV?s>e`hjL!Qdt9c4G|IKpq&j>X?f(Sz5nur zmpp%%dlT;kL)~TxRHHh30aXd7J-F9UARx4}uB_Lz6it)(M)+8!bOhIGn5Y)-}8k z!FF|B@w;C*|NPFp|LHoy@Cx5U7S2_CYhghClIGzmexu4{jWbMad%Q}vQ)$t&&aJnQukHk9ho>MG379IixHVK3$U?OJY=}xq<0U`Uk(L>3XPZ%|RwQ8Fe zUXChQ+nPwRrhJcN1p7A<0?RHQlOSg^kIt2Y!qCT^OO}?OX_920Mpga@o2iUa-t>a*cG|UtF)a5ed%D4*4{Pl72j@ zpC9x*7jYu>`nh&gk=t5O@McIAh#o)@=MnAaLi~N2mQIal3%o2^UY=Z&$A51uhfEq^ z^0LGFuS`q)HcpXY+!KHdM*8f%Iqg5<&$zNJVnCaI0G79xt9~xY$JN%wkk4TFJxzzv zXrXa?Mq8L2a4boRAh?%p-;eCo`5^Cw%k+IRcbYic0G2~<7nG<}Y4Oevc|laA+SkSn0CdFO0lON-r`!%~GJSr^0@wvOObI7`rwPE;Xwxa(i*L zqr$D;tpu%`$=dsfYN0z~ar`P%*P{TyxW@lUyHAnj-XV3_F1NCdYjqPr>?g(6?WU6W z${3F>SY8SZH#0izTj`+Zvm;N%v*7K20C-*D34&Pl5w?> z$rZL{?-P`vZQtkLPhg4ql?@RCWN0$6Du2s49#iXN`sPg9ADO!sLbU%d*LV)dW?tJ^ zE(0!GGzx8jlTw{4gIzB4v%jfjU0k@R8%I#!NgVx}A3t9z(sRkF1`17<4#pk5y6ER%2bZgBbD?XUR&oKzBF}y@! zg#%rDe`DBdNM9vM@GB@K^O&yel{ z4|mGO3y*ZXt@8q`bnh9Olk;+OoM!f`S5dgrmGyH@y!) zMV$WwlCHdbjOoy_m=yZ7pLg;xIJK?S4yk^J#pY(n4HWr8lNk7FV!A23m*yf#k@u5b zq0LYD6?;{Mb14j@>8=Z;tQ&1ORKmx(5>uX#Ef;7*eB+@_^4xTf0LaCZjt)C?r%`6v zTOPQZ*g2^VU%oync*;;>K?$B4vnKuvwQrhY70tsrgiV$tAQU2&Lqc4YoD5E*^pNuM z6j$bNOstUlVkD$pyi|Ks@V!{mrgj7X2fpHAc3;IznCGwhwtNoZR)_@`$p>bHPYyo- zkDj=t3K%m2{FZ9>Xh*5M!&Xj(+E_eXaFV&Zei!_QX@KbYdnIJ(utc&PJTA06(2z^O zYnS1`=@a?;t{5v9W(4rYX1n(wpXyNNdSXs)mjd z<)o8MYsy=6M`NwY0#At~hCB9l)awuBuuHHF;Ru5f!b_|8+xu?ypTI4C`@9b4Mt85V z0>AuKE?Fjzp^Hl(tl`zlT$$!54Bj)X^;{XLgF%^ZU`+A1U_%8=a09*bk4?IqgLV|PNbgD!`^3;FXz2edkJPazfxPGQSc|=%&7E>d zuP^paewSE-N8lN5wO)xrN1v_iAUd3A&B4zOf>5Ys;bQ9-smVj8DT_i+oc}Z z2^>@K+8gZ^w$*Cs#XzTBqj1@ZthKk-?DCx#NwwDP($gXK7zGc|Dj;j5qvt(^3aj4Q zuL*#a5VY{O!LkhPc8JM)U?Ow<3A4sLWH`Os2Xr_+5h+MxT;GBso8&WaYLP6^2nY4W zk4|l#f{}uW-G*f_7YhSi2^+Zajy^ZCUhl{vo^!+=19sh7RbcxCn%sYS@)(AYJk{6uLf`?&^Frup zFWx_Yas6kThur)$D*%Gz`vC`F+b=v9k29H2T2|HHyt{yATjj^6OW&G7 zmXEvvzBggdZ!%4IXG=i$4#;AShNZSjzAQeOTXm&=tO>1wY#MU&d$=ZmY|{qFzf8I< z@g)3ic{UowJ0Ef?8KsCSS`bs(^vXH_R{4o5-b>@OJhbYy>3b*!HPqcV`EVXJ;NIj4 zZ7rC?w(97?+2HtO?OlFgq6S?3*UkA!Ev5xnfPcio4mcV|T(+3AN0j7Un^6*TNza@} zN-&`*XhJkdU5QVjvkZ)cfN_8&Q$g6UWl0EZxipBp`EmIKeT1GtDxhmZ4~`A{UlaaJ zC5I;n6M4TJ{y>}q5JfmJs|oOcC0X`WwgMjD_E~VeUJBFuhlkS55g41`RBVYq0JKFO zJg#s|1HwmecE8IOEafEdBXs+JO~hI^vs7d|c^?7PUx&iVw_0v(+rcU2(v`28%#*jk zL-f~~{khs5-7ZMAGXkVXVtzNKog`rKHTb3$X8kC&yZ)UN&WAVtMW`So^!cj1+cixb zQ<7lT<|YbYHXtvc$ysDKw8j3S0c1!#d%>9>!3^MLQ|({xLb4eA$BlE6wk%suLP{hKU0Vn zWyQVPO22Rz^KtZ2=1+e7n)*EV35AICn+jK~)Ak8gaBTR0-3DWA3DZPa?4T`n)?OjO zkP>($C8M$S53HmYHHx!U8k$dGhYYm{_S@ z8eskWS45R|F_)~a^ko~Cqz)I-i@nwk2ap&1IWLDT#fA-ua1j*GKS{gH=tME7!H zwnc3YAYC#PR9D@hC#`xcWm#r!Nho$f24mib65Rmf^h8#@w%F?aRvM_`@^aT}eIjOa zqs*2vU-nK0!+#$Y+N8}Lm}e4Nt7hSdom101N=XoS0EKyJRU3EVG;6e;#ewq4!XbWI zV>0jf%1cwvDBmi1Xc5oC@^(W5m#r*9=A&Kv#Ta8wo5e-LdrzU>mm>Evw7na6t>*l04e29}-$$Z5_p*0)|CLw;aYgmYk!oR^ZR&a;f zlt*ARd!%yl$iz`DGZ%WrYdb^zi|6E4`g_MfvcroS)&jGPqrUZ3K&c|po=ngC?Ln(F zVe_Z!Vb9M#m)!gqdWAN&2?7vC;p!JU!|K|o6j(A9AaFLLV(a_Dr6oT=L3hByacdJr zdAZ(lCq3rsux4_J{Q$F>?wVQAu6;MQEBdw%sCRMSIql>Mb<101imN2wBI@ft5YAUu zOmef;5`F$)*X}sZ7*MWd0Opv^Ttt2iH(o)8jNbEFOkwei=#n&07g=QQW6S5>E(s zqsLe!-2GU;71pLl%~a`bP};Bwd8|N-N*EWWj8B1Y{qK+#+EDM9&h+6pP8nduT%w0BxsJV{0Yqf_L=nKgg?!;1eWO06RSZ+%Zz4 ze-G86VsZeSijDZx(SZ#kf-&zZYy{Xv@C7L9@PVXBc0U4nE((Zd^R#Can%QZ#L(1ho z8_QdMS>(u8XT$$5>K9x)5?N}Lo_lN~#o8Zk#f-)_t_2jfxP5hl05<#qI}3q&x*0NC zqTKnLqnaF34rsRI(>!i~mVGw{iMjq|*`|KdsT{sgZ^GgFTc!~SsifxHZ&t@qoT*@* z3$r#X`#O$zLF!?sYL6pFk3+5%$61SX?M{z`Gu;r-%qC4mv*;t>MA$8GX)0Ew8bOwc z4>wT*B+_a9gwssD@(u#Lsb=jV0sK}9V;LR-raytR9^_O?udj@}oN$^7#uX!fS&;OLC=>LLE zk`u#Ea(K~_|8A1}?=h*OP(RHBMq~nNIt%~~RA(QAmOI42Zv1H``R*&JG>=gQ>}b%Z z|9m-_R5K1dGmMB7j>@n1izBh@SFZ5URUE?9yAmrJs9kJq%PAcc{MQquoO1QwZzIMOz2^Ov2_Yx6hxPs48f@42an1SUiCbWP4e-0ofB-K6 zQJMox2RKV;oRSX*H9F-SXa8T+{{J@Mdu=XohQWAu(RG&#_x69PeqIzk959i2VuiMs z(-y62q(D#L3dgNkfoMPXRSn>G-gmUy0$anT8H3CF1PU}BMV2?Za(&EiK6f%j=^W*=p4S>x7msh>VK@ofU zXwzCm+NYfNB(;jLOdy5lk}afKX98-@1k`)!0T{-PDv;5^s_aGWbj<({`CtAqeRCcD p9!p*THedk)m#Ya!J;WQ?_H{_@0&Q~<@DDN&(&7qVDntze{|_b`(GUOt literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture80.png b/doc/py_tutorials/py_setup/py_setup_in_windows/images/Capture80.png new file mode 100644 index 0000000000000000000000000000000000000000..fee3ffa087be5ea25e6bdad6b7c4a576a3f91b03 GIT binary patch literal 11246 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. + + 1.2. `Numpy `_. + + 1.3. `Matplotlib `_ (*Matplotlib is optional, but recommended since we use it a lot in our tutorials*). + +2. Install all packages into their default locations. Python will be installed to **C:/Python27/**. + +3. After installation, open Python IDLE. Enter ``import numpy`` and make sure Numpy is working fine. + +4. Download latest OpenCV release from `sourceforge site `_ and double-click to extract it. + +7. Goto **opencv/build/python/2.7** folder. + +8. Copy **cv2.pyd** to **C:/Python27/lib/site-packeges**. + +9. Open Python IDLE and type following codes in Python terminal. + + >>> import cv2 + >>> print cv2.__version__ + +If the results are printed out without any errors, congratulations !!! You have installed OpenCV-Python successfully. + + +Building OpenCV from source +=============================== +1. Download and install Visual Studio and CMake. + + 1.1. `Visual Studio 2012 `_ + + 1.2. `CMake `_ + +2. Download and install necessary Python packages to their default locations + + 2.1. `Python 2.7.x `_ + + 2.2. `Numpy `_ + + 2.3. `Matplotlib `_ (*Matplotlib is optional, but recommended since we use it a lot in our tutorials.*) + +.. note:: In this case, we are using 32-bit binaries of Python packages. But if you want to use OpenCV for x64, 64-bit binaries of Python packages are to be installed. Problem is that, there is no official 64-bit binaries of Numpy. You have to build it on your own. For that, you have to use the same compiler used to build Python. When you start Python IDLE, it shows the compiler details. You can get more `information here `_. So your system must have the same Visual Studio version and build Numpy from source. + +.. note:: Another method to have 64-bit Python packages is to use ready-made Python distributions from third-parties like `Anaconda `_, `Enthought `_ etc. It will be bigger in size, but will have everything you need. Everything in a single shell. You can also download 32-bit versions also. + +3. Make sure Python and Numpy are working fine. + +4. Download OpenCV source. It can be from `Sourceforge `_ (for official release version) or from `Github `_ (for latest source). + +5. Extract it to a folder, ``opencv`` and create a new folder ``build`` in it. + +6. Open CMake-gui (*Start > All Programs > CMake-gui*) + +7. Fill the fields as follows (see the image below): + + 7.1. Click on **Browse Source...** and locate the ``opencv`` folder. + + 7.2. Click on **Browse Build...** and locate the ``build`` folder we created. + + 7.3. Click on **Configure**. + + .. image:: images/Capture1.jpg + :alt: capture1 + :align: center + + + 7.4. It will open a new window to select the compiler. Choose appropriate compiler (here, Visual Studio 11) and click **Finish**. + + .. image:: images/Capture2.png + :alt: capture2 + :align: center + + + 7.5. Wait until analysis is finished. + +8. You will see all the fields are marked in red. Click on the **WITH** field to expand it. It decides what extra features you need. So mark appropriate fields. See the below image: + + .. image:: images/Capture3.png + :alt: capture3 + :align: center + + +9. Now click on **BUILD** field to expand it. First few fields configure the build method. See the below image: + + .. image:: images/Capture5.png + :alt: capture5 + :align: center + + +10. Remaining fields specify what modules are to be built. Since GPU modules are not yet supported by OpenCV-Python, you can completely avoid it to save time (But if you work with them, keep it there). See the image below: + + .. image:: images/Capture6.png + :alt: capture6 + :align: center + + +11. Now click on **ENABLE** field to expand it. Make sure **ENABLE_SOLUTION_FOLDERS** is unchecked (Solution folders are not supported by Visual Studio Express edition). See the image below: + + .. image:: images/Capture7.png + :alt: capture7 + :align: center + + +12. Also make sure that in the **PYTHON** field, everything is filled. (Ignore PYTHON_DEBUG_LIBRARY). See image below: + + .. image:: images/Capture80.png + :alt: capture80 + :align: center + + +13. Finally click the **Generate** button. + +14. Now go to our **opencv/build** folder. There you will find **OpenCV.sln** file. Open it with Visual Studio. + +15. Check build mode as **Release** instead of **Debug**. + +16. In the solution explorer, right-click on the **Solution** (or **ALL_BUILD**) and build it. It will take some time to finish. + +17. Again, right-click on **INSTALL** and build it. Now OpenCV-Python will be installed. + + .. image:: images/Capture8.png + :alt: capture8 + :align: center + + +18. Open Python IDLE and enter ``import cv2``. If no error, it is installed correctly. + +.. note:: We have installed with no other support like TBB, Eigen, Qt, Documentation etc. It would be difficult to explain it here. A more detailed video will be added soon or you can just hack around. + + +Additional Resources +========================== + + +Exercises +============ + +1. If you have a windows machine, compile the OpenCV from source. Do all kinds of hacks. If you meet any problem, visit OpenCV forum and explain your problem. diff --git a/doc/py_tutorials/py_setup/py_table_of_contents_setup/images/fedora_logo.jpg b/doc/py_tutorials/py_setup/py_table_of_contents_setup/images/fedora_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..03bee7fa7aa2494a7d3c8cb9563a987600e9ed07 GIT binary patch literal 3327 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_setup/py_table_of_contents_setup/images/windows_logo.jpg b/doc/py_tutorials/py_setup/py_table_of_contents_setup/images/windows_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..21ca9efb63deda10921ae3daec7d6655cd97785c GIT binary patch literal 3191 zcmbW%cQo8v9suy)7z|?!qL)OM=v|Z;?J1*1Zwb+jc_aui9+414q68sPqDL|eY4z31LP?)RR1zMpdo=`(2&px4(y>Hr`R0D#ULK$-=# z04M}P1)+peQBl!Ap)_zddN?gD{30_80~=1QtO)DRaJz_uT4Nu8X7n)oQs~GOXUjR6_x)vNbdj!D!>k~1B3VgG6oQs0YvHo zxX_?KuMR!W1LO=87kH&LC>c$i zAbh?|G7l4TsrWUkJDANzw*+LJ{lclCEUawo9D+iZuLz6C$tzq{R8rRZOgMj@iSqKl8xVLe2ooIfC^9Pgam<3~Xl&|y-_`x0r}tyu*!aZc)ThtWGhdf*_+`S%>e~ADkDcAU{e#1!<6kZi0RD@0 zKK=#!4;RC^i;SEcOb+?w0+HQ2?_dUU3SMc-3mT>nCtpTBnTJ$Nnu)p99n}1?W?Rh8 zexpzp0lBY&+rMak%Kkf8`2QvQ7wq4z82|W3^-Ltz=ie7LR`pDmD~X< zJTR}gU*(c9FsOGI(v;bqe}ncqA8X1|42}V|=p#WX6KuhOs6ado-7hv%($X0QW{p9xt0Eun(+B%6h+(|C;dGnuNF`9q52S)YfOba7Uk zOME*>{@To@j_zc+|g?@;|%%)dQ3U`^wf%Ch7<6({O*dqKXP$~Q{} zfUFsJHj7k6?8zl9`{e)O8oq!U(>08_)>ifna|x#^5;+x7W>YR6;3UTvNR{z|TN*FC ztEkk`QQ?F`<z_Zrdk}p6NIKn4QjODH!F7( zD_RtRa84Vd3`HG;(PIr}(Zvo6^V$Ps*NWBnLpt!>M5)9MHR2!Uy784p(~U`;^LW;g zFS-}I zD@mBGG~v(3%gp5@Y9?W06qe)HYI!oSa0UjkBP&6DXoQ&yFmIm{Tk zI@(s29!V@0__?1-+;qNi7F5D&)RH>rvt-nJ)VV_FF+Bn9)AZ{ecL#J*;)dc)$xDuQY?006 zP<=(M;)&ui3OX%xnh$ce8Ns%8_QwalC0^cBDmT_;lb^x#Of_s2a-%a&_s;^lW8P~j zEUOw`QYarMOstA!pF$b37n#-4EQoM%J`!-(Vm9tx$Ir(<)_cCVz0@+2(V-Lb-K~6Y zQfnRy1I5zm<9B&2+ z;Ko2FT?o5S)#am$^4O%5HQO^`HTQ9r1>UsEIn4+6_D8u0$$sJLJoScw#EH9A&@5A{xB%1sH1V+hZB^)WdYRGd zd=Im9ubJs?ve?HXJcx#kqx8P^w`SBcY794Fc5zYpY)M1w!Vg!V?-CCKPqf{=Xt}%= zTuNa9&XAo-<;3)i;Q35i?FzWQXA(865}_Bhe<{cRI7^LVC3cX%Hr{W@K>9$wy2^33 zmXZ^bsuOs$pZTEO(LbT@%{`9e^3vz|CRz411LfFih2!N-x?{uk@7XIiS#aNPd?NuH zcoGmq0+ctpTH|9mu!GGehr3TtN6jr*vbWb*e}*_GBY64z1*-oF1Ebdd*Nfz8#w|>lV)66|F0v6u#Kzc1RyUUs?z<^l?5`P4>Y@0 zq?&n79`>wR*mulO)DMW;X{xOhlz%Bi``C{_>^@Ee2-acKmyb0gdxy=6&YmnTne;4w@{4bs@)E zx53T0quyIbf$I}$0ED9A5^R>#^^0-cq(@Eo zh<-iGQ%*M1eK1H&ohM#zRQt0e8Jrt@h

nz+e zbfD)21C+#WnZ2z%szTgNx?JxLyUEMmmmiQcnQ+iSiHDYeLYu4A?J}WMqZUCIVFHHO zOmkpB{Mb_&D$3FK$~8r=XdPvem2sW~op_W=y|ee-q$dI9w)N>Ba_>h=iwmqwGw@Kjy;|o*zX3H~~i8c!6`rA-N|Pp+oXfI-os=ha|jaTgmv zUQ5CZpn66%e!zvuYLOH4O=kR%F!p$dpYP- zfzvAO_Q&vY@97t3$3VhVTS7sl;?fEYe_>D%a_%T(kfYJ+PPtlS1OJxXq6Rxeez$AC z?f_Z0L{;dBq?bBHzubmI)ly(l)>`8c=g;3xH+z_QoXb8GmI{@b&f?bgJdB!Im`_M1 z_w~EK1Ue~uh9bZ|ryOT5$(MFH=05G5EontQgIt3qXq(E?$x*8<5L&}J?_U~~xZ@*- zrZy>0?fo)f(PG)e%q4g>iWl;HzSx^T%U5N$rd+Yj?J`zX30fVURdW2f!N$C+TA1zP zsx~S{B%Xgp&-L4TE#KQ3uuD9iytP>G5xGVJXhSTEm1D$`I{ByU(<~OlnhMUVU1cEw o&=5)HTGM{79lgiQ%K~J0xCw5m*-kX|HEP)Eu4bmwRyJw+ANHE%!~g&Q literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_setup/py_table_of_contents_setup/py_table_of_contents_setup.rst b/doc/py_tutorials/py_setup/py_table_of_contents_setup/py_table_of_contents_setup.rst new file mode 100644 index 000000000..a89771a17 --- /dev/null +++ b/doc/py_tutorials/py_setup/py_table_of_contents_setup/py_table_of_contents_setup.rst @@ -0,0 +1,60 @@ +.. _PY_Table-Of-Content-Setup: + +Introduction to OpenCV +----------------------------------------------------------- + +* :ref:`Intro` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |Intro_1| Getting Started with OpenCV-Python + + =========== ====================================================== + + .. |Intro_1| image:: images/opencv_logo.jpg + :height: 90pt + :width: 90pt + + + +* :ref:`Install-OpenCV-Python-in-Windows` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |Install_1| Set Up OpenCV-Python in Windows + + =========== ====================================================== + + .. |Install_1| image:: images/windows_logo.jpg + :height: 90pt + :width: 90pt + +* :ref:`Install-OpenCV-Python-in-Fedora` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ====================================================== + |Install_2| Set Up OpenCV-Python in Fedora + + =========== ====================================================== + + .. |Install_2| image:: images/fedora_logo.jpg + :height: 90pt + :width: 90pt + +.. raw:: latex + + \pagebreak + +.. We use a custom table of content format and as the table of content only informs Sphinx about the hierarchy of the files, no need to show it. +.. toctree:: + :hidden: + + ../py_intro/py_intro + ../py_setup_in_windows/py_setup_in_windows + ../py_setup_in_fedora/py_setup_in_fedora diff --git a/doc/py_tutorials/py_tutorials.rst b/doc/py_tutorials/py_tutorials.rst new file mode 100644 index 000000000..06481b95d --- /dev/null +++ b/doc/py_tutorials/py_tutorials.rst @@ -0,0 +1,180 @@ +####################### +OpenCV-Python Tutorials +####################### + +* :ref:`PY_Table-Of-Content-Setup` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |Introduct| Learn how to setup OpenCV-Python on your computer! + + =========== ======================================================= + + .. |Introduct| image:: images/intro.png + :height: 80pt + :width: 80pt + :alt: Introduction Icon + +* :ref:`PY_Table-Of-Content-Gui` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |Gui| Here you will learn how to display and save images and videos, control mouse events and create trackbar. + =========== ======================================================= + + .. |Gui| image:: images/gui.jpg + :height: 80pt + :width: 80pt + :alt: gui Icon + +* :ref:`PY_Table-Of-Content-Core` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |Core| In this section you will learn basic operations on image like pixel editing, geometric transformations, code optimization, some mathematical tools etc. + + =========== ======================================================= + + .. |Core| image:: images/core.jpg + :height: 80pt + :width: 80pt + :alt: core Icon + + +* :ref:`PY_Table-Of-Content-ImgProc` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |ImgProc| In this section you will learn different image processing functions inside OpenCV. + + =========== ======================================================= + + .. |ImgProc| image:: images/imgproc.jpg + :height: 80pt + :width: 80pt + :alt: imgproc Icon + +* :ref:`PY_Table-Of-Content-Feature2D` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |Feature2D| In this section you will learn about feature detectors and descriptors + + =========== ======================================================= + + .. |Feature2D| image:: images/featureicon.jpg + :height: 80pt + :width: 80pt + :alt: imgproc Icon + + +* :ref:`PY_Table-Of-Content-Video` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |Video| In this section you will learn different techniques to work with videos like object tracking etc. + + =========== ======================================================= + + .. |Video| image:: images/videoicon.jpg + :height: 80pt + :width: 80pt + :alt: imgproc Icon + + +* :ref:`PY_Table-Of-Content-Calib` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |Calib| In this section we will learn about camera calibration, stereo imaging etc. + + =========== ======================================================= + + .. |Calib| image:: images/calib3d_icon.jpg + :height: 80pt + :width: 80pt + :alt: Calib Icon + + + +* :ref:`PY_Table-Of-Content-ML` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |ML| In this section you will learn different image processing functions inside OpenCV. + + =========== ======================================================= + + .. |ML| image:: images/MachineLearnings.jpg + :height: 80pt + :width: 80pt + :alt: ML Icon + + +* :ref:`PY_Table-Of-Content-Photo` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |Photo| In this section you will learn different computational photography techniques like image denoising etc. + + =========== ======================================================= + + .. |Photo| image:: images/photoicon.jpg + :height: 80pt + :width: 80pt + :alt: ML Icon + + +* :ref:`PY_Table-Of-Content-Objdetection` + + .. tabularcolumns:: m{100pt} m{300pt} + .. cssclass:: toctableopencv + + =========== ======================================================= + |Objde| In this section you will object detection techniques like face detection etc. + + =========== ======================================================= + + .. |Objde| image:: images/obj_icon.jpg + :height: 80pt + :width: 80pt + :alt: OD Icon + + + +.. raw:: latex + + \pagebreak + +.. toctree:: + :maxdepth: 2 + :hidden: + + py_setup/py_table_of_contents_setup/py_table_of_contents_setup + py_gui/py_table_of_contents_gui/py_table_of_contents_gui + py_core/py_table_of_contents_core/py_table_of_contents_core + py_imgproc/py_table_of_contents_imgproc/py_table_of_contents_imgproc + py_feature2d/py_table_of_contents_feature2d/py_table_of_contents_feature2d + py_video/py_table_of_contents_video/py_table_of_contents_video + py_calib3d/py_table_of_contents_calib3d/py_table_of_contents_calib3d + py_ml/py_table_of_contents_ml/py_table_of_contents_ml + py_photo/py_table_of_contents_photo/py_table_of_contents_photo + py_objdetect/py_table_of_contents_objdetect/py_table_of_contents_objdetect diff --git a/doc/py_tutorials/py_video/py_bg_subtraction/images/resframe.jpg b/doc/py_tutorials/py_video/py_bg_subtraction/images/resframe.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70e34dbd85c13b2540d430d7c174cafa30579789 GIT binary patch literal 20013 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 aQ~ng23l==MeH;GzG*dkE_xz0%fdARo^vhZR literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_video/py_bg_subtraction/images/resgmg.jpg b/doc/py_tutorials/py_video/py_bg_subtraction/images/resgmg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7178fc818327d1495dac65bc22b4ac4745a7cc5 GIT binary patch literal 11631 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 SrxSqz&U1#Wf7sdYng0W$nXsDx literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.rst b/doc/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.rst new file mode 100644 index 000000000..ef47b2323 --- /dev/null +++ b/doc/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.rst @@ -0,0 +1,162 @@ +.. _background_subtraction: + + +Background Subtraction +**************************** + +Goal +======= + +In this chapter, + + * We will familiarize with the background subtraction methods available in OpenCV. + +Basics +============= + +Background subtraction is a major preprocessing steps in many vision based applications. For example, consider the cases like visitor counter where a static camera takes the number of visitors entering or leaving the room, or a traffic camera extracting information about the vehicles etc. In all these cases, first you need to extract the person or vehicles alone. Technically, you need to extract the moving foreground from static background. + +If you have an image of background alone, like image of the room without visitors, image of the road without vehicles etc, it is an easy job. Just subtract the new image from the background. You get the foreground objects alone. But in most of the cases, you may not have such an image, so we need to extract the background from whatever images we have. It become more complicated when there is shadow of the vehicles. Since shadow is also moving, simple subtraction will mark that also as foreground. It complicates things. + +Several algorithms were introduced for this purpose. OpenCV has implemented three such algorithms which is very easy to use. We will see them one-by-one. + + +BackgroundSubtractorMOG +----------------------------------- + +It is a Gaussian Mixture-based Background/Foreground Segmentation Algorithm. It was introduced in the paper "An improved adaptive background mixture model for real-time tracking with shadow detection" by P. KadewTraKuPong and R. Bowden in 2001. It uses a method to model each background pixel by a mixture of K Gaussian distributions (K = 3 to 5). The weights of the mixture represent the time proportions that those colours stay in the scene. The probable background colours are the ones which stay longer and more static. + +While coding, we need to create a background object using the function, **cv2.createBackgroundSubtractorMOG()**. It has some optional parameters like length of history, number of gaussian mixtures, threshold etc. It is all set to some default values. Then inside the video loop, use ``backgroundsubtractor.apply()`` method to get the foreground mask. + +See a simple example below: +:: + + import numpy as np + import cv2 + + cap = cv2.VideoCapture('vtest.avi') + + fgbg = cv2.createBackgroundSubtractorMOG() + + while(1): + ret, frame = cap.read() + + fgmask = fgbg.apply(frame) + + cv2.imshow('frame',fgmask) + k = cv2.waitKey(30) & 0xff + if k == 27: + break + + cap.release() + cv2.destroyAllWindows() + + +( All the results are shown at the end for comparison). + + +BackgroundSubtractorMOG2 +------------------------------------ + +It is also a Gaussian Mixture-based Background/Foreground Segmentation Algorithm. It is based on two papers by Z.Zivkovic, "Improved adaptive Gausian mixture model for background subtraction" in 2004 and "Efficient Adaptive Density Estimation per Image Pixel for the Task of Background Subtraction" in 2006. One important feature of this algorithm is that it selects the appropriate number of gaussian distribution for each pixel. (Remember, in last case, we took a K gaussian distributions throughout the algorithm). It provides better adaptibility to varying scenes due illumination changes etc. + +As in previous case, we have to create a background subtractor object. Here, you have an option of selecting whether shadow to be detected or not. If ``detectShadows = True`` (which is so by default), it detects and marks shadows, but decreases the speed. Shadows will be marked in gray color. +:: + + import numpy as np + import cv2 + + cap = cv2.VideoCapture('vtest.avi') + + fgbg = cv2.createBackgroundSubtractorMOG2() + + while(1): + ret, frame = cap.read() + + fgmask = fgbg.apply(frame) + + cv2.imshow('frame',fgmask) + k = cv2.waitKey(30) & 0xff + if k == 27: + break + + cap.release() + cv2.destroyAllWindows() + +(Results given at the end) + + +BackgroundSubtractorGMG +----------------------------------- + +This algorithm combines statistical background image estimation and per-pixel Bayesian segmentation. It was introduced by Andrew B. Godbehere, Akihiro Matsukawa, Ken Goldberg in their paper "Visual Tracking of Human Visitors under Variable-Lighting Conditions for a Responsive Audio Art Installation" in 2012. As per the paper, the system ran a successful interactive audio art installation called “Are We There Yet?” from March 31 - July 31 2011 at the Contemporary Jewish Museum in San Francisco, California. + +It uses first few (120 by default) frames for background modelling. It employs probabilistic foreground segmentation algorithm that identifies possible foreground objects using Bayesian inference. The estimates are adaptive; newer observations are more heavily weighted than old observations to accommodate variable illumination. Several morphological filtering operations like closing and opening are done to remove unwanted noise. You will get a black window during first few frames. + +It would be better to apply morphological opening to the result to remove the noises. +:: + + import numpy as np + import cv2 + + cap = cv2.VideoCapture('vtest.avi') + + kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)) + fgbg = cv2.createBackgroundSubtractorGMG() + + while(1): + ret, frame = cap.read() + + fgmask = fgbg.apply(frame) + fgmask = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel) + + cv2.imshow('frame',fgmask) + k = cv2.waitKey(30) & 0xff + if k == 27: + break + + cap.release() + cv2.destroyAllWindows() + + +Results +=========== + + +**Original Frame** + +Below image shows the 200th frame of a video + + .. image:: images/resframe.jpg + :alt: Original frame + :align: center + +**Result of BackgroundSubtractorMOG** + + .. image:: images/resmog.jpg + :alt: Result of BackgroundSubtractorMOG + :align: center + +**Result of BackgroundSubtractorMOG2** + +Gray color region shows shadow region. + + .. image:: images/resmog2.jpg + :alt: Result of BackgroundSubtractorMOG2 + :align: center + +**Result of BackgroundSubtractorGMG** + +Noise is removed with morphological opening. + + .. image:: images/resgmg.jpg + :alt: Result of BackgroundSubtractorGMG + :align: center + + +Additional Resources +============================= + + +Exercises +================= diff --git a/doc/py_tutorials/py_video/py_lucas_kanade/images/optical_flow_basic1.jpg b/doc/py_tutorials/py_video/py_lucas_kanade/images/optical_flow_basic1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..718d83c10b2837b84bab4be7f41dc02b9543d577 GIT binary patch literal 6146 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 *y?^9-nc*M6z07GD}u>>~f* ztC-emb(rdA#4=)4Re)H$9Ko8&-SD(d^h!i4yUBN{0<;i0m(o=?$|svGS|I;d9f33- z!(d&JQYVomjJlv1lJ1hIoX^HU$INK5ZnguaJEPRnox${mu0@^w8IY~-DprxJ@9GAV zv9uq5T9StP@Vz8RW~3Oqe3929`1JTPIY89B_!%YsRfv8FDjmK#TIG07w-o&viXP9^ zvQdg&7+Ebmr`KGB)2ijYtNAW9r`QRt{m!4Zscb`MK+q*wRJoG8JrV!&ow=gy>!u?o)S@SqK!3>g@B5_wJEy1CF>ThNDze@lA%kyWS{td_= B4v_!= literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_video/py_lucas_kanade/images/opticalfb.jpg b/doc/py_tutorials/py_video/py_lucas_kanade/images/opticalfb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1698659c5b0d92974f97771501ef36e916901999 GIT binary patch literal 24600 zcmbT7Wl&r}*XIWY7~BE`x50gI2%g~X9^56kyCn=dxVsbFHMqNLg1bwQ0NFh6yR}=j zpLX}$y7$ZN>gwN>bGpy}^xu`gTL5f1DOo8192@`u_wNAwT?c#wAR{7ykPwkUNFWqs zWEAvw=;&x@=!7`9nD0ml$;e0uNr)-HEVL9uRW z)8OEN2>%9*jDm{xuR#+w03Hqqghv1(A|fFCYwiEZ}q20#bG{d;*p9DpcbcA-;<#XeyDOS#R1Qw_qWzW`B@ z0au-%oC*#_xB&Zb!2HO(i>5FPsJ`Ies zO^GD^9(2X{XTf7oBHy)zy9PxydzC^@OQMZ2*;kDy=oDJ5;uANOgs_?2Gdq@6t$2vB zfleGfwjW2TPNw4;96FD;=m8|+Zu=zLuH@WPgsx*8Dpv$I?kJM9C4Ll!WiZziHuBpi zcPjpqY|krGpA^MKlPp;S7y7$gz04@J)C74m&{g%<9^=wTsv)lZ+J|G^Q-p5=;nUmt z0azh2_ah}k9LT+-Zq=PkwiO<9&VGdfv|{=LP!}YJ-8Tn=1t$kn-ers3N>$ein#my( z&C~gmzX0N~#yP)1)&mECIqB@@q+-=ZXtW`0io}9=fJq?@WM4`l!)^A^$s{z^7K}8T0*upJ=gWv@ z@jLZ8&=TP1=O$Ac(xN_9P7w8PqbN4Ns>x?VBJUGq5IBYso>Oq{G&&y6>9DUB?{~Nl zAF37?7}iI5z9V>&sG%2?8`JU5cS-*Xu+{`v0dJ~n`h3JZVHZ`pB^iL<`|I!=%D=#E zyV0+9oCiZ>gwsg*_U2tH_}KjGC_?*n3&HERRe=b$OH0h$w`t=Y+vABpDE;!R%Brlz z=`S5cJ{wMo;&}z|-yyb2lz3e^VY*J!b>8nV4dfnvj{E)?!RWC1z@G3P;3;sLYkM1b zR(|RD*+`TlpWp03=FIj`?&4^6I8%+C2T2UED_p+h=)tqzQKtvAJil>Q)%8Ilc8E%N z@06I2YX3?6FTlm zD=>F8_MfYTUF8P$jLoq=ss??;9%E7|3~j-CnlVsF@KRS+8MuWhX{$(SLk-}2+$s(} zwxNY)xgUJhnpQx~lDs{{lf^O1{>92Vqy}am#ygZ|65xMc=+ z4lr7Rsn)yj-%nc8%@uKMJq&WngqHPe#@@fDti-L4OGhT_n4?LbTI45_f@rhu*at@+ z=HYYunBNH8?D~H#A7s_hO+V`C=8eblTg+uHfk4~atpSd1WWn_OmCkFrV)+Lh(nP~! zD0ojaza<%XE%kd&=`=j206QSf8=9BRHcsL2mKX{AJ^wsS*h%e|P5j10 z$_udQQggUKp(Y9bMWJtPm4lNR_|XvSmSS7`h0&zExBR2<{)8fK3W=#vS1*||kJ=Y( zLm?5v;;3q`r!-266k7`P7{yL$>)TPnu#v$TT-mXlgAN-;M&@vN7q0Kuv>gTpLmDm5 zKThnjmNw70NB4BbyWyqsT&9L?<0ha-FA6K|VYIywimm&y>eGI1qT#NoIKMVeoO@BF zy_)TQM}AU5LGKAea6fK+gKwvIG^GmAu)x4Y^L4d3h?)OHg-|w1iK~B_plCQtuAeQ) z+ZwLrPA7mD8(kFo46R?Ll>KvrZr}ORSFvu`?@%d^iq1N68y~*w)bnL}Uo;!hU?G;r zkr=_0aoWL-VeR*}zY|1Jw!Ys6zF5m?J%Tt2xn#|aG4zYj(&1|;)Fi^Icf+&|^yX8d ze83T?*F=>lKp!W@h;}#fa#V}A^0C#i*^B@5-38Gz53lYlhiRLoKLdP{C!aUc2WQR)=CvY4o7vyU&CiF?8gn+zbtHrdzITH>cagIIS%uKq zcC4v10(DhgG2vInl6!K+x-lSTA%519i-gh<9DVyghbbqstIPrNrZU=L$-I72LCnmI zggwv%4@x|TMRRJH`)baXex%y`BIKFAS0GdOuH%h-T)$+JhTJD3FhNKb{NbQ*=CROfr*y zA4ssZ2CF=wsTCP#nc)lOsrFRqQC4iFe=wU1B{J*z_rc|+-4_BVjQYZ;YvVw{lQNaB zC$1FYsvn5WD8dW!Hhwm$AZ4`>_%&L*_k5t85|uN~7@&k@hzYuAgg!0~%nmrWqy^Op zV_0n-t2AqTYCTUrHc-Zl;bsykFBJ-RD5ZrP;ujtJ&hlH`uf$@5Lu4EDq-lP&Aa=n7 zR&jmvog3cHPV{bWkQ*S~k3h2H`)U|&onqb?7R@@~Efnkga;&c0i+Vwrlc_^2%gy>J zW^koAhL9Pl~TA7)|baKa4M`jrmE}R{#Zp?q{H&+4@+8cucH6NRHrE`>ADU z3idKq4aa)71A9^TByvwwHU>Qu0PhP|R8&H|4-#bdwKlZ*&luki;mCuD z>}NFt3`?k$K__-f%nklT$*csB=mRk`;5BzPBWr)skbbNV0w6fYCgJBK+7Q8}fz=PW zHI3#r5zX%u)=BP=XoeSMJ^OZh7~vwN*@6F=Yh1BBRFcV)NwQ*PLPCiqEEXRzP5cTBQegLflHx$U(*Ry+4(z+?%gY!%7 z)>?26cY~`jinOP%Co8*%9K%h#Pd|R1?_5Z{*dU(jM=tnaG9Sz$xftHp4h;Y#P*?oiUvqK!|ZSyTG1SI(i(GFlg;cZqd zK`S@cY{jK}Cj?MQd?F3tnU=25Gn679(nyBHA90H6L1CV4+?zYFE^pd}?$5`bh*UwI zQ_d@Yd^K719vxz3zYnmYMbIIU)_m;!Ez(sf^b?Rb)$uED&DTfWB8Ab^1nDLbTp_h!_Oo{}%>HWSpZC>viIE@J4|5o33LHy-`-IPP z!W*akq{JOIX1}9!*^Ct=z9Pw5Y670k+DiI)(|>>A)Sqm?Bp^IbPyewc9sE4MV9T0b z;=S5Bj%C~SrS#-ItV7%Zj6h@w24J~ZH!S^}VuaU~q^ZY6nCF$iG9NZ_2}CV-4fH3g zYkIGY-x$_W$qOXs>LC(t&8t>(E&aqj-D0pQP8{#odV@CR<0LG6{M+X~HnkM_ob5vI zMEp-*)wcz+i;BcJg#=O5!{SB<;xI7JB@*UB_lKh z_NW*5D{6IJ)0}g4XGPE(i?=0x&Hh?4LAa9>A`diN%qJnQ9VX>@0@!BmoWNRsqR?ZLp?LMB|GgxE#6~ zf%O8V8#4S1gW5o2LN zwK8^0mG;aj^kTp{+jaYOz@JfY6+8m_gj^0r61E*fb6FR!wlwo3;0Y?}Wx8f=eNCu@ z$vQJd>Yb;mr}{RWo<&JkH$T@-kZ#c^smWBf z0qE5*_P>1V0y8N)Mu8n+0Hz8M<-;p;j#^SoA>OzA#wI8ubriBeh|#0ZF8`fq48*VX zw*++TO!mWjO1LSw)3xuzEH;eRMYzWC^5l5WfpX=}5ZEnV2(LlDxnrSFZ2GaTew+EJ z9a;8sQdp-Fka+|SNT%c*t!Z=4T5R_3ncl{K`^EHdSRyHpel=7$4pSy&eucyxs*F@r zyK>8?toYR}WMHRbjEK#)4<9fZz$<-lm8lhX#XJbZnb~{Okax8uOR)=&M*I^L()(k| zma&F)3pg4;l9>C}^ts^Qy49YYmj$Zf@S!X(2zsV=OXUi^SI>a1r3f@Mb6 z*QQc&2FeO)&V=2#By`U~cU9M}31;cd27$O}V)GVy$rRCKO3qYTWr5YWeH}e?z^`?b zF+ALS%HR+_Oy>FfF0FONmRR}63rnnIG{*{Ap+K)-Xs_U}Fm^KZHQ^1{2+|2nWP#JP z+uWfVB6>C zy;Ce`6OoY7Zz-A5rrT&m+v^aqGiB1>-1?6p7*bao$J%y?OT16=-&U~15WQEwG?vP$ zRo@F%&hPuAsaQYvcHboT%ToeAX(MFh?<)GLUXlKWZLF829PoN-O?g-Wg0KvppS2~+ zPv5^YVE>&sF~u*H(tM;eRhkX{zbC44U<4#$oZO>z-1)T_lGr<0e|L&f3aZx zMI5E$fQakeAFKSAYekymu+7cYi{`aPm4R6j5?OQmx9f!jxVuA&7~0~^JA(5scCOrz zwowgxpo)RvYR@_@VM|Wbc*~yPQWyd8;xi~>^4x6tc|E9>;h9}sc53~d2ajc2e5ktv z;#xHaeHf{)x$&DO#y|?@u0>q@WI`o+@ec`1QHb945y4f#^!F1^1=04_NUnQF zHJ%a<4ps4|uhTpw5YE7s6K`9#HA=5}?xH7g^d0&UhWG@?FIGiUnAvorW6eEm$l6$j zT`30U_cQg5*vx$V^%d&L4Z{mYPJ0+i2)jFRCm&%t87WnPe%%@kXL1@;@%k$X-CG8|`fFsviNIA%FEeVkHaiksYW|O8u1%CzrS798icRIgpdO5@1$0Ez#8GGb;VFw?`7{mbIhCq%; zByfp6AY)@mKfi8d83=`r~W@VnL; ztP1%Qp zxt`IbnzyWH7Dr8Ro0Xdu1bI0@TaUr)!+r3n)cqj_TTj<{gKuU2MJAonFk{BM6zg<@ z*x!10m{;EDz;(*u~b=*)N5^dpTdhB`gIJKc%){odU31gV6_TUty44#%KjrFhe zVWp61`c}TMo4$-L9{gr9ALnDyUAT45*(a|koIVpjXsYJ28Of7rk9!nw-VA>pf+PhH z$-W)52&p9M9m1*CC)Si5J32~1E`*uc>_+gC+=xGU4SAi;-xb@*oXp4-g?#G!xrn5i@esl1cxB*U zK$VJ3H%Ci*On7@r%;;$&BY8T$9G^b!zGwcjzAo#WJlD_gwT>|c)*-?BiWY|1^mIBK zQ!&Dp)E0y+*C`ifGWRsUEM+2-4ksKwk&VBA`*PT+mgAW&nfM2#?KiLd!KPYQw(YW0 zEL+v8iSIoYdXhlU`cmH8Ji1|ZX=`r0+$RaF1&srLHVfKpzSsb>73Y~Z{8Z7^YHDhp zbSEzczy?#2`z-d)%!JRIz0Bp!n^+!N{=>Hb&2=Lj+9K8A*W6Nt-H_XX%iMksu19SM zH}0V=v-2`IBZG|d#A57w%pLwbAwzmw^A`hKruo+bBRY&t0s@A@Bd$RuA=PpP1!vp$ z3PEn~F> zLrj=aD3p7a+t1LS*+hQwW)a=IS^A~)<VirTB%jfQ^8 z<4%C8F-6gLI{xfBc$+5tw7wRCSD@rm;v*&ZB8_dFq~&h=LKV!dW3sV=NpHz~Ir9Bl z$7U%?b%w#rM!c+9`%ge@YL&Bt<-_|QZX>XeK!^c-92s+{aRxvM#w2n)=Zgk;5< zwOb~#a%o6bwB#z)ASmM*B-dE_We-pUt9nGilW%D+6-}?9M@bbDYRk&BDio5)m>Hit z?1GM}?Jqs!Lh5#D7yRu8->7UO%T8`zbD0qos5L>9TUoHj zBd1fYas8s%-bRr^jJ(-q#X|r-PpZ8((*T_*sm1A9`V-gBoz%0_?q(U$7tO$Vff9X= z*dudutFF(PiYXJ`oXJ*GE=9Zem0N!SD7M5yh3KP5thnL_LZPVAPQprD+9qzoE!&sS zxr6p^&LS-ghL5tMrJ@gw6pQWm)rgA0O+f_btSP<6X@_h~0V<5-8ka%Fx2fr#X z@|15r_!j)6T@aiT3M{6@`*y=r-_T}7)3%p5`f|K3Bg|jEiRpzf6BT-UNS-W9L*2pL z0#GYr;|Js0J4_KIm3WsR8nGbt6tB1*Yx&h;fa8TR0225zdx>&&|2!HT#tNzmkvE>s zr-08`3aSm(#~JbXLOIr^C_o_<1Ob}cx$tOWSV-A!qQcX+Ez=-kGx$PdI3dd%ozRHA zc@lma6;9s6yg^B@v6Ic2vQKziULNuWa6Q8`hyRTHmNsUO#Cxxh%vnUOfcULD z*V=C#$OE5W)JV+FKzatDuD;~%6(7G({nU&`LIz!b0kpoEHmLVMM<;-+ht3`@AD1ir zVZz~5%_{sr>cmnaM^r_7@5CeGas0J!Md(&eLYlDcSL2}yE1Bm*`>#UJTmHp96|*I9I1> z8YINh6d!tpLhtULHEuqf)^(KQqp^}&tk zkWUIH<8Xzt2GPoYhv`jPd-YmRvDuF#1|X1FeHktPCENcFjVbOTc=%sVB{~IV?C`uI)Ie6E*($JMWXd%x9>p;X7)Nk|(paoeUXmOL(0P1`!R$ET661 zsSK8TBxBl^zTGmXz$!N}raPiiMv|}NVg?cXC2ynih32MX^U-iQeC4Hj^r=oU&bBuL zN<_}lv3~)(T5O}l2AE;_u~uT@_bN8rr4h2f&X;j%R#DM zwvNm1!wY1EzV*mxBRHu31uRn-jU~!qkr&%f6a_p<$=vhg2U?I~EAlj#nWIEgCekMc zabj5MPI4KoRmy`IviYs(AH%h->mjx(-?L)Xm5rEYKK;0v+~o96gI2P3ZPaI{8k_$n zW7b-iP1&w4irpK0OLYn|#^#;aeO6!o*rlG^QpxL+79pDL%ykT|=eY0_CNBg;>FQkU z#ykuO5c22`c^v+E&oNXwZY(9`+&k!2V^UU5qW4qTfS~Nc?KHCkrRp#YNFC21PCisk z{Gm2wIAzehru3t`M_t2h>u#5ibcEZ=ncD~JWVwBWFf6UZ=Vg3%pe}7y(>hbV3~)%9 z$~7S%+iuR-E$62I>#Di5ie_p)=vZINP{HOYZN}@1V)N3Ero!OxRgA@0II|Q=pQUoM z2QmI~{e3dzLEg5rFV0A3TW^g;?-tY-%>PBx6IF6)ZXHQu4llg3jD$~UVjrVt5F8TE zRiDhW5(kx>q=l_lVH+wyJj!C$A;3PKe2@$5XaxlZk!@KfE#?i1#Obuw^@aJCE+=vMvnUh6ca_O}=J z&@WNn_qI@267Ld}uM2)NF`eyJ-G|EpM`4XuUvJ);e)>@_j6de=fGE*2O{Ii2gMl}6 zof)sqtxN)&h7Wxmd-Fn``G%WxN1vsFd+!r?|A~WfoHN&*r7*2MCaOwqYv zbLH!}u#Z~wIoOlNi81!DjwfozLHiG%T#g3|CNJY*gb>!DB69~yj_lj@3_8V(1m9 zkgM;TEqK82sp>6X!Xcd%}XZ_EiaH=93G&U0`u0MqMJ&K& z{Fizdj#=AclK?B^hzo&YcP35sH3?TvJJFXHD`iz?L(2WZ`=4r&|jD?MVzw439QanVx%4{6$EsbT#eJW%q;$MU6pu z(;F*~5bun-AUX@6h>m(C#W?BGTStiV3gW?gAc}$>fc`e<;J=$+-(=JWPLBv zTbJ(0YMdQ#R#zD}U|Gu6eNflQ=-2X-c%IEPxQ2Il0PIa=_!b!5=B5|LQr4GC<(KA{#lXJIAYW9D!ZN)3Hcr_>wzX4j`B|Fw z&ba{#zkwMEJa&FkN+IW8B5hTH%}V_kP6B@cB{pyPQuv6YJ%0|qZ+U*sNmiSg!q!@; z!T65-G{7BuJ2wA8fQV(7zF5>W3*A`_0pU8{dS&&XXdzana5c+}JbB_&JE7MjrT)m} z#ABYFrGk)Zx+GBVBn_A2gNC$Ej^OMOh$`Qj)xqD>6){t<*G1!-;RAlp1y}HLlY{H|SCxSPiH}VR6`qt) zQluV|9ioA_P5@8o!`e`BrQs(8C)t1U_B3_I0h8IQ+}@4wnDD)~a6nERhM z{{p_=^IzU|L`0Yi?H0zK^taZO`q9<|_K9zgv#O8b_~&zu2r>gh|0SvubAo~_bNhU zWSyzQr3BAFBfmS0d{EUEiKrU+t|Wet2KR5(7SIUgyl|`Se{gBEy8S+1xcQXJx(a-4 zJT?6E4bpp%2SWh~&46?5n2+8r6B#Ma@!ujUCe}ilY35f`OGkPu3;5MTFt|g8!Nov< zXv4ti@Zr~MNw;-9DE!E=tb+ef8_t~EY>0jqj(o3>3e}U*1yn`jPE`>Ax0K-`Nc^rA zH_KC1Z1r_k)zMz1nrp4%0p4khfB0CA)Z5G3Q61-!*h>OdViwi`Z&X__vpW+ zKTVYRJK`g{RvlSAPXCznSgw-5U9~MEo7?z}hqoueg~s=&?C<=Pp+-uNKyf4VN42Q| zO5JAf77&Gx6p_HQ+cWBoa_nb9Vvol5{c4fvG7(x8k-a>Zz%3p66AU`lvmY3j%W795 zFqc(MS(INly9WrN!N*y*1?ng!CQf$ zi6P!RM4w$qxB>pQ7@%6R80p5GQtp_XfeaNTL3Ihj!z^MO6%g>cG~V}COifv?YCsCl zcLqSlWSD+|2>GT2)k|eCFhTcGt7!27HgonvKT<~kY7y=bW((j95QS=aKI^XPATN7Q zi#bDU2RzSZn`Dot=c2;D6}z>D=eI@+%JA0LZiOyrkF-DcWgO%+*L};=Pe*W$+cq2q z-qch(LP(VkA2nL`n0GrO^}P4e-|nIfUS%ig)K)C~DXvW9{RHP_j00@yxkg@hwWsj! zLH&xH%oIQy6zj8N+V&}V_kVdE2t_bm7@eCWrgJP4NFruXms;|n$W(4SB@IUCm^BOb znTPA`B|C9}9*Ygcq@I2>P8>c~kV)f_IqFNqA>0Qr3+Q|6Y_fZ^m*jypy9Ffr#x5gi=V!WUuiN1a&C4Y=hvs8a- zKKnZCL=~BGwfZa-w?xf5>8h09e>c-&x8$n)mjGX*%Ywz}jWsS;IU@P>X3RiO7(rwG zS5@pz^bnw;o%3C>`jm^!gwCBn34(}}073@981uySa@c?vDo#12U!_9&FyOEKhrTx> zdupeiTZ(Wj$Fp^<^+hQV^$H8lrc~$JBh#j_F~FrW^fmlL+!5qI2@c2DgUkNkwfgzS ziRneXLwL-X*-s`<+Tbfbo(F#Lbyer(mn2*!=CWcphqlum;UhEYiEh#b^EvlZv`1MC z2d4xl=Xm6i7b!`9Lp!eo_KRGf!_d$8puQM6`G!V>Xwn1qSW)!l%16;pxzY{hZJARr zXe?I{pa*zgI-^J?*Tg_Wy5Ll;ETqw`dtVNBq>-b4?|EUt?@KPxvtOk zM(wTMw-FN33zSUMx0|B)wVVyQs-@$>o>be}cBrHfK2-QE4xI=IuyW?roo#$&yJ?#|O8J*zK(; zbO#$L`_Z@a1!6UN(kFcz9R7o@{j5E~bEn;tKF|#a=L7C-$bDU>;k(broqA~@W6TWZ z=YB!Le26H#%`@c;9xX}U@G5oD3yBs$Km|Z8m;@@;g)#KwvrD@)rN^$u7C24_2v9{?;^7V4ol<%Q@S1v>Dp{^HO)_4)+Sd4gYZEfD6W#6+^wB zLwai#@r;K#lD64HBUH^jlS-6&O^xKCH$^CI-^iTj(!OiyXk?id;TStHzUc!;24%2= z#n3eeg*bo<^9g*e;c5ZNR4oiYI^C5mh2Avoaj@;P)c(oCPNJQM8^&sp&cVbLhclMh zsVX?s9(#s7}oca+K6!Kg+A&NW=_#K3AB34aT9`%}NqN}tdGKb03 z-P$#E#9kNF9G?ff2pu+m*U)S zJk|5+Qo$b_P<}7+!z=Jew92<$4ihUNjhjZEo4|FsN!a|C#%{b-Mh35XyxZ0?7-BXBgCjkmUkdODN}_DjrvAORvy|gdXI%Jr~x7+&`%)vZc0& zo&hpp$`wc@3*Kq6Z%S!s#R?%3jr{N`X~ronf_nbKUk*^oCd`=Qu^@{`KhpDzJU;+V zZav3cRh{Z5wMNU6M%7*?tklqIseEL10MEE;pYaG7C%RmmE}#>iL{PKuu-wyH*SqMp z9U;oGB}3}*L3ymV#5?vvazwuqJA+4tFzf=Y#RDB@y(hvu^7~Ow)fKJjA}>32?GXFL zSz>j)EHry4k_{T$-m82sYn38GY@Kw09bMXZI9gg;h0Cr~|Kg5WF&5hQ&w1@6Qi;+2grxMkR0McM(e!BR7QmDX(1jWc3{@U1z zz{k1P+;2YpBFUabRUISq(m@*TC26$fdm<>EydsSAB_M!O-YZJ)D~3N+6Aap(3=Tm) z1j_a#K;vRx>$uza%U~-`Hv2c; zc|do(pTgF8SadoOJL|Q+JKv?o3h57?7lLI+dU!~8kvSqdS<#29hfiU5C9MkE`XZZ5 z{2Q=nE3$HptiJ$ck)3oIpOT;Hhq2!IvkPPwGGygPM&$w&3iBCS7XABW@0gjY&nKgO z=aaP*dm*uXMU?EStv(E8wR#e&sBt9>GuqrQd`04AC$sCDMzmq}L>X3q3Pd&UQSzK7 zJ%^ATbKMm4SZ&Esy+HT@XKS%>pY z-K2n}|LJ~ik~^r2KgDA=9;BDRU&J_KfGOQ&VX~nNAy&9plQuxDbMQO9Nxj7m^sN%B z#{5Xv$KP|Q@T5D+=5=|jCsi3S$VlR$eM&Yb=;#8HC86{eX0D!Z`exaa`Ct$FIDcEi zqvoP?AzZPUlTTxY>WO|w-JT!Woxt=UEK8c3A-gJ@kYb7 z5c}X*(t~O%#R+qjtZ=wl9)R3tOrWB9*<(47r?cYMN3Eo-TMhX7oqYSyjI^wWqV+@t z^zxgvctRi~wmY52U$*Djv*N)+%6Gt>(&6(z^+*K+D*IC2;-a<1FEmSIN3SL&i~(UI zkhTE4bQcu$h%7`A1IQTH6{U`3pA?Y|l~6{CsP>!{5unaO!Q!Oq3J9#HvanM*Z7_9) z#vLXVtpBm$rvIEFp5FKZ>)tsyg(hg0*z*r_6{g!KP!|{(@S05{Kx3e>($a z%dqup5`KZ5WBr->!d=5CMV(_Yq#N+yLI?Fyow>mS;6%(0qnY{U^3M>ps37fe7_jDq zi3lF44_7NE8)yO_1X@aRE6EYG%hZNAb+1Ter0Y-2u^qbAxQI&KAvzRTM(&k?r9$v+&nbAkQU4T5gwY-aS9REb!tg!% z4>3b+EX73Nw*9M(2Cj<^f$&!zWNpoD`2ZfKh!~gmj)A1h;ifvbt!(-iIh`6N9$P5@ zm3ee*vngR~sp-wra|Jd)_m!GaKi=JjKo6KSS5EAsl~3?xhO^`v#|mC1T6Fve{Kij0~Ew z%$V()4yGD%J(lbnNI4)}^(bfRG)<8&mH^Pe`@qd*)D95(z4{)M#`fxjgg0C&j<9In z5@;dfwa_0-F%4KpdmW!ovdpsRZo**>Xh3*5Np>CkJOfkCt;PBsT!D>u%64o z`kfzoh%PhyY$=_q47CvfXriT=&p95%IP>|amDhX0uKJ`>?J$vA< zqkoi}Bm0w6Y2}Zx_BBM6`Wf0x-Z?a_WjNNm#whxO=v3dyE8>Pd8}~!&Yqu1|Tzet^ zxJmYYa)AMViUb(7!$t7ldb`HgUTCK{jftGYIb&j$K2_B`g^nX#MP$y$s!30lX#9dE zdmtg8siEZ~L(7C59^4?6+U9Y&Q-m^WE4Z{vZXz%IkS=e=5;a=QoYzyY+Cdt&sU5cO*^pR4yJS_Sk zM_rgPn$ROZXp7G@LcDeRhny|1;CvKN0xs-1TFo9QYhafdDwYQkX&jIm4OKK5mP?DZ z5os;h5)Z)u1AH|@;L5U{Y^aj=q)uX>kvZ-ZOobG#amVVlhk%^|W7lQw3j!u?*yUe< zOtTw(D@p2IId9)?IHGc~VwO5xxH+K!u=*o*pptDEkHdM$?l@sl!V+)}^60Gk^d9A{ z!euKE{ol3}KSlPJ<~TcFQYhd{BE`$?t99jv@$}>&Zw6Mj&Q&Hb_8g+at2>b?nJmxSD|sY#nZxX8w+Hhrz+% zL^tt9!)!g@bqHgysor9mU~B0FAO7M&m8mncC0p26D+Oo87Nm2e^?t+SI=qDRkT-@r z5J->E>Xehk@O-K+^s^S5ayt8laGf)EtFXe7RwKpiBt2q*2MQ|wOj>Gi3%Y}<-W>PqT^Mjb^~ zbs)N?vs+OSFn-X8CA)d$gn$3gz<)7iSeQ^&Jtqn{l-5Q z{K`C8_#=Z)WvbITcc(g4YAHucW^%(y$RW8I_Bcyi2Pw5)sb^eVtHiSYY)n><8* zCR@H-C#cQ^7|QA5I%0CJjW`wM8uTBg1JjMeC63W*+Jr__mX z;`?C#reN3Ne%^xMqfK(n>^iu;{;zh8^?qE%zh~puTyUXLe-1_Cj7bWKK((bVA+DAG zCK3`qe#O`a)oAj+fEZ3GlLwo6?5$RA=v$c~df`)W@cOn6&mUT~;=Xz`Jf{;cnKsj4!eOA+K>rvx>le2Ux& zcBhwS`XRy_+eBn;I*p@Jcv}pKREZe!wanA7#^XXV%Ac}^i*rVBVQPR_R$|Kp;bN0- zEd*G@!lE2Wp%`Oy`!~afbLCXj6TT&1(u2rQck*&Z3B+^&zW*w63?{@?Z_zDttsht) zc6&q$p$g`aq@Pt0TN0;`2N^?n#lx6}6GPRd?b}Akyzfhgi4MJnu%z(iwBUojmG`J2 zA0KN`TJdWe4q!6P4|Z`B(ywLi+xOvF(74#NQ5A9Wrycsn497DKu=HS$UmHzGpwJ(!FReOWokr{z=$L|m@3VJDU8@OD z;o(9ryhqE0u=rAB|4n|5y z=%64-69uFr0--2~g)Y5`prU-?oO{kYcicPPcw@Zp#~gdFow?SYbdVpY)~J0^;$&q|-8>!F`6$O*NmR(2HFTw;BD{vs-IT&o4?((&4G^^I$; zy~GPcOydzw_54oAGs}utZQ}RNHd9AVwOMK+?<+uxOl=Ma&}*t%x#!yFx$|E$at;ON zdsqYDi%H}-f=n#LJDWt500BnL!?K3jBt;@Bt95v7#|+l>;^aF$tJZWh3VoMRmmiCy z>rKf-s8gGK;B#zhDmYC239CM>hv_nEZ0eg2u1+7OVk+63^QVs~YkH;Gp671vtV zzk?8`iH&PApqzAxX&^j^6pUr$-AJCbA4_M>AY4sb)JGwU2&jme@Jg*Sw&wBa(nG2V zGdUgjK@^_@?WD-BqSJAbP>&-%f%PuKlUN$zMKfK@|Ef(jEipg& z9=v>gOZaQ?lgRrL(aTajx5+rqr)u(s^M*pu3-SB`Q<;{s2Hlic|2%u^tFU;sGXu-$ z^yZ%p@E_iW@|E6A5)9hC88)q3KO7!JSv=#HcapQplLn{R6X8ob^oy)~El<>!5Qmjz zIyKljNHA6cEjl3u^0AbbQ1|oG*?`wSFJ?o<{pLdEFW%((9DaCJ*MRYmnS&X`>@#S;pV&l~&eh#nZTiGyiHUGR%zEfMt?8j2HGXXL9A%rTp?GjWSAJdCGtL;}=A+-v zX?!F1|2PwC0$+$DxZ=h$ws{zTT-R-cb>nJ`A(P&%GrCHp>4D0rF4H6^sE(7t=JP_J*+-jwrYz%v`` z38||xg=*AqqEPvP&j2!;!_yUvugA}3jD|z$D~}fVM(Fg``D)2>;fg!vtQ`_LR27vo zvm8a>2F3Y`IuUi zJB#(G4#002>D+Y<+PQ44*q+(ecM{>>+g&U9gq^AB_`$UoMH=+{Gdx^m*5}tkX`T_H zkv3noRa>#P#T|vYGF5p(o;$cC;)Ft3`Df2+w>e)fO|I#?8t(?HH49rLdTQ+gYkS?6 ze=R~kh_vy2u8+AgcJXd*X9=-E!0*6MT-w;DmcH4GSKgp^(a$(%Y*T+rH`GK6Mdj7U z{ruw5u~x<`1?)7D7LMC>Ukjz;PI1V|8Le~2Y^>U|(U`8_VWa@N=7xf+z;1)zh(hdvuU_Oof57#{Kk{?T1XM$u6lSF)poeUga; z+0%GC|8p5Y8cZK&hG_6{dw`zakKvn-COyBH1*D#ZzU8M&U3#W;l3>BYnrxiMs;#X1an2)->^#ywV;@^vWcNHo%CeTIl|6ar z?b~Ccc#Uxqu1pbp#G!rM+y062s+qKkBuD#Ed&}pqU$B^iEyO6oLAM8a2qE!$ z(^=nVvya)?y3d#+Jl+8lLX*bd&Bs?3alf4ZWREyE zqvSQYD_Zoiw}CUH=FCBDgqa|$8y%W*LJ}ca&a#z%=G~_pSx!=|0$up}_q!Sv z!I91UBDF<_LBW^Ok06;IQ;*<6y{A-Y%Lcu`&fsQ*kCR>fF~>Brsu+CtOv<|l((qfo zwwGdGA2X}vV};ordw$!3Y>Au+T&GwV9*jp`QY{Vp@}cB7J`v8_Er9B|Wqd7e!fa9} zZL?%{TJxCoT`&0O?AC#UW1CBsJ001mE^gMoY4*# zvX-EbZ>$hlb_6=}&jkz`*-c|s<^6LGED%nIF&@G>2Idh8AePU>$;D&38!K_U?00vH zZ>^_<&TXsWzkbK<0m$XTD&nM93(3*nO^0_~oUyEO(R+Z}m%En87tkvH4+rM5?w|)Z z%M}NV7OJ{u^sj4O&R^LBU~k54@Asz1wb@uZd_;_xiTW~!o`ftAf7zr{OyB zOVmF1cn`p5;(qd-J7-s|CQ;z^ln7lydEDbpX2atv_D7lGjJ}ta zQ^AeCBwywSJ7<}1Gu;E+dv7+it$KC4We>1!*@D&|CPvC?*6tGXk%rbcnst`;iNZXN zT>?$(`)6=R~Y zCNMvcohVna2Vh|`TuXxdvSF?G!gFiUaTY7Z-eG?)nSp z6Kn!^S08?#B8!+Qq0^@C{hPG!Fv%61ETnIdu5IL%zF4<>{w%TMMp9{cgRT?5!0JfZ z{6|Rtl3QMg+hYMoe$msLtJ@_})a>C2S58^Y+4cO`aUt86%_o_fFH|uTAZ`aZ^;V%T zbEHb^*5L#s*mju6$sR+KE8*QW8l%t6u6-NxidqSLuNS^i645eI(MyOECg%ONzC877 zm?^iC5bDEMEw)VE%&ZTG*6=VNxBV$j*Hfd`D}CC)!acxfNjSA&p{nEB%?DF%uya%H zz7*emQ_%Y;&oFZ7Y?vGV!;GcLk4xb4eqOhpntn*9)_3GGw-HVjo9!6G2BI(csr_E~ zLo;ZzcW^(=FM+q+fXmTW9Q(ufsUUSsHip-;pQ{P`HH;U1M1G^ zsQIzSVh`|=xr=<==jB>mpk|hQ_0^wSqI-aoSA-BJ*v54xymoHutj`qR{lpZ_PW{y# z{0os)r@xwO3*aXrQ_KSe(q6sX{2NK`RUx%WfSLwMZUR%ufPKIZWTL<)8GPXas)_D;fN6z!?n5PZrekHr8WeM1Yum{(!1vbJp1;7#hwF`Uj{J zt8)6K&nJXSFX$2Pi!+Hv{M+yU#Qpo;fee6nA_Q_+!weAs2<>0Y{>AkF>s1*6GH3Y@ zFgjIL8PqDHqBvM?xCgKzj>az_ZgeMGwhzvsQ=>my-i&kOh5c#i(;^5EH#%yE;^Qwqtl@nzOc zg=O#jN!rEN-=a4+-D*7C8}K9fC8q`przmd?I>=4Kxe8DZSy}BP6rrjuWm8Q|h#^Yu zut=>BjSdS<@2{o7CJYU7A>5Ef!_14}e~b4|^>Bdc)R6nkxN;B$`HJCdM`P?TZXo;_ zCGwqSWHX{!Gnz`<=qOW30^##Z&ym6TV*4iY?_dsQ0T(zVJ_`2)(`mGQtN8 zam(ViJU3~|&C>-fz3)T;mbB|5*LZn3SXBIYWDXRyx%Pp!T;ee26nHYrv{-&x4x!0+ zQ@Pb)Ud5EsXTumJ?09*Zf^3`HnAEa$c!p}pXA#?m_gJztyDl@~QUDU$42n|t(Ch)fq*dh< zKOYwqkjF~i@&`LA9&{gflR?aW4RoY|( zC|Nb}UAUs@Git^NFAvdkvy5q=Xca{i_Spn>%ofgzUOE*CL@6UAbeZalMtfSjftITn zP-ERc-6hAI#gJ@+vSW%-49N6E76&+y8^BOel7}(O2~4l}V`kW&9l*1}QZ+UHbyrd< zTt(A(AJY+bA#QI!Wmc+{U+SuHoPVN5V34z|B7tBIa`#-J?oH8*<3~xYo?(}HN`v$i zE1z-5k(5R{9%Q2HEqP4I;PRw7rpR*GX?Y;?6aRE6`AZ4ULp{t;0})>3Ab?p#Daq#s zdN@R#Q$^{XOI`H*CdtoS;9Ou2IR#Vl%BKt{{H^3zCvf&@ikkU|OkZE-a+UgV?#zb6 zj{(CR@oeZWnFDj62^n;Tn)-^HokPWQv{HUnS9V6!WMN-19wBfT(ll?aio?8_?p*qW zwY5!I@SX5bn!~zZ#NDuoC)->w_#s390lmuj#rjcp5TagEzr}+a)0n416pTc^Vu>>Y zu1pTSC^v+5j>4Kb2tsZ%u=0?Wc%Uy73PnP^4NO=CiA@+mG{$@hZHN$$riK|=FdYoS zg<=O`k5!@Ji|}_#o(5{L1>yo&`YhJ@?QiWtk(6_!#)RJb;b`3P2X5K+h>w&YcFs&+ z*b(ARUdoonX({s|oLG{LT5&*B3)`YaN=Dy z^7ChwPY&%Wu}hn9Q;M?@8?!<3yI$so%)FlzPS%JGOmtN)BVMJv&n_&TFwKwcD2l*E zMa28kNfuj$$c_F4eLm;*Zlj*`iTg&H6o72KUA$cNnpC`PL9KmvfoP1osqluuW<`2j z3B!BA%x!{yc?zq^k<{;3QbDl#lH(?ta=orA|80e!B6&bmRNl#d5h8G$;0e1Z2KXg+ zZ=Iboq8cMi)=S#RYHu`Bd2?%F*lFN(Q{aH2`nU2x6VOzzNaUT%(G*v(nZ;MFFIxrR zUf5vb^Q0w_S1p4kny~go<79DK4uc_&!Ve$-0{fF140r*-c7hCUhK1Zm$|6vgtF0u` z<3PY51r|?8L7Ab6XB(>-7SlAzUSiv3!AuO}e0E6zvl!yjMS{+Ujsf0C4jLaTnS!A_ z)FhJluvq;2x&GnTmbcd*TD3XTR?7LKJ|?Fng#IE{eMfRDHSnxstQ-aqpibUo3>w}v zV1xijfok(WfMjO01ux=Ci(_o6lFuFp!Akk&rdZxeyF&HyG~1MrSOw}6o@GDWC`7x+ z4(19gO*Eaau5bsWsIs+rmn)9;fnJglkbLismia)ei<5>ew`y*^(@HFkgIsVrSa1xndETB%5FYGrm83EB{H32&ByT%_|dW z0?D3cbFq%*UQdE1nI1;XfX@-rt1z5h2R1w()-233uM0zoEDwBXF~~Ufgd_VlAa=m^lqn?Pvb_CG zX-|`v&wrvy35q#$bpP?ESlqx7`ei{R-}r6Y_tjQyKF5hAD$lGg%mz3-$-f|!awBK5 zQP5ICn`h%)p_HnF2875>@_a(0({glC8VpQW??HBIV)QWdU;raTmr5hxG3ZQ`qhtTj z!{TE^-JFQX&QU%-H3o(~$2SjjGY@t`yg+}u?Od`j4?JV=OH7DpwV%dqju_^*TAMwG zXCeub>zC6a&+^VlIyr^}yY{yt8kmr8~tf<6OmL2; zK~?xEk}i6dQf4rsAaPZ{G4>5oDOC4sd8jCl%{0sNAcPn6a~Y)ErdG{zJA*ObZu8U? zT^r##2;-bdTRn;_ye}Y7nzNL5s+jTS3N)+wZDf^r=MRx^;PZ;TxBx_pRIQC^)BT7QZf!0*(wRvm44!@demS1)S*(3?qPx1weuUM52aQDADwpGgI#pLIV3V!{mJIht za&&q2Rkb)MxWB!&&l7r(mIq62^I!&&sK3)+I5il|LdXL-gd8$LfN_nj+DNjG99gmKx*H!jvf$mg|G0DBsM0lVNc-0R}l6uA0)6qh%LDo!8r{`v()Z z_zW;6&YGzX9gXafBsXxgzN75c49-J31R-^)x3+O#49vXXKcOo5ud0BWOg;cqFRy9& zOi%S5j`6BEW8y0)_dVcFkYHnAG0?Jl$$vDWYRUbOn(**LL%{V!x$MNRg<_WO%c}Zs zmT+|s^7yfC%B??W`K7VFXFzjwBcX`N+Ndq}hpUXR~>hoqIoW5K?dvzAFYw&(UasIqRrAR zuA5J?D>DbO%wG{{i@3A)@5LvJl@hKPS-FfMQK(6lUNthI!2BGHfsKJ-AcvWels|%5 zFo+cZ-N3N^^fib9jU$vGc`#pu8v=_+FtE`bA#>UQ9lu3m4cg8u0g2ZK#qr$Ch>tjo zG6N->?^i|~%zW$5TI!!y2d3a!si}z}?E8sqel!}M&l+OJnl5{BdhjB2J=&`6QTzK7 zy6s0?m7Pz*-klNVFkZWjLugbMtWk!=mw9L#VU)}~PjFXr{?kW|q=wApJepdJtr)Xi5UZzb$mNV&z4NGc z+xU0NoG76?v8=Pad=3})6DYQF*#DNw!cb#*Us{{pxXU4gubM4`E28kVTG0(B4y43L zNyF@O0d2Fgf)j}nt0-lIfWdIXerfP~U05**d9Mw$G+gS{<<7N6dL{t#*E)9Ouhb}S`p%D_-FC{SLU^Ug)ooK0<=jfNd2e&|7i>Vx)-3+ zsKFpcFtKWFD7}A47;BSu7sT*3WOFDDCmPo+q6e6V9m?{>62a8?wj44`9*oNv!(1xZ zUo$uWVwOq(>Laoq_*gPE3FMP=EqyW*p>76>$N)Qm1RMjK3{@0$-z h9O8`twM+eP4Ef*2;Q!Ym1*C-xKF-V(^Ck91{|EN-fU*Dp literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_video/py_lucas_kanade/images/opticalflow_lk.jpg b/doc/py_tutorials/py_video/py_lucas_kanade/images/opticalflow_lk.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d3176d69ba7cb1efa4ca315547f3e906bf75fc9 GIT binary patch literal 22792 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 Vb)qt~TzlBg`W{O~6jYFZ|Jme^_I3aO literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.rst b/doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.rst new file mode 100644 index 000000000..cb889a705 --- /dev/null +++ b/doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.rst @@ -0,0 +1,212 @@ +.. _Lucas_Kanade: + + +Optical Flow +********************************************* + +Goal +======= + +In this chapter, + * We will understand the concepts of optical flow and its estimation using Lucas-Kanade method. + * We will use functions like **cv2.calcOpticalFlowPyrLK()** to track feature points in a video. + + +Optical Flow +================ + +Optical flow is the pattern of apparent motion of image objects between two consecutive frames caused by the movemement of object or camera. It is 2D vector field where each vector is a displacement vector showing the movement of points from first frame to second. Consider the image below (Image Courtesy: `Wikipedia article on Optical Flow `_). + + + .. image:: images/optical_flow_basic1.jpg + :alt: Optical Flow + :align: center + +It shows a ball moving in 5 consecutive frames. The arrow shows its displacement vector. Optical flow has many applications in areas like : + + * Structure from Motion + * Video Compression + * Video Stabilization ... + +Optical flow works on several assumptions: + +1. The pixel intensities of an object do not change between consecutive frames. +2. Neighbouring pixels have similar motion. + +Consider a pixel :math:`I(x,y,t)` in first frame (Check a new dimension, time, is added here. Earlier we were working with images only, so no need of time). It moves by distance :math:`(dx,dy)` in next frame taken after :math:`dt` time. So since those pixels are the same and intensity does not change, we can say, + +.. math:: + + I(x,y,t) = I(x+dx, y+dy, t+dt) + +Then take taylor series approximation of right-hand side, remove common terms and divide by :math:`dt` to get the following equation: + +.. math:: + + f_x u + f_y v + f_t = 0 \; + +where: + +.. math:: + + f_x = \frac{\partial f}{\partial x} \; ; \; f_y = \frac{\partial f}{\partial x} + + u = \frac{dx}{dt} \; ; \; v = \frac{dy}{dt} + + +Above equation is called Optical Flow equation. In it, we can find :math:`f_x` and :math:`f_y`, they are image gradients. Similarly :math:`f_t` is the gradient along time. But :math:`(u,v)` is unknown. We cannot solve this one equation with two unknown variables. So several methods are provided to solve this problem and one of them is Lucas-Kanade. + +Lucas-Kanade method +------------------------- + +We have seen an assumption before, that all the neighbouring pixels will have similar motion. Lucas-Kanade method takes a 3x3 patch around the point. So all the 9 points have the same motion. We can find :math:`(f_x, f_y, f_t)` for these 9 points. So now our problem becomes solving 9 equations with two unknown variables which is over-determined. A better solution is obtained with least square fit method. Below is the final solution which is two equation-two unknown problem and solve to get the solution. + +.. math:: + + \begin{bmatrix} u \\ v \end{bmatrix} = + \begin{bmatrix} + \sum_{i}{f_{x_i}}^2 & \sum_{i}{f_{x_i} f_{y_i} } \\ + \sum_{i}{f_{x_i} f_{y_i}} & \sum_{i}{f_{y_i}}^2 + \end{bmatrix}^{-1} + \begin{bmatrix} + - \sum_{i}{f_{x_i} f_{t_i}} \\ + - \sum_{i}{f_{y_i} f_{t_i}} + \end{bmatrix} + + +( Check similarity of inverse matrix with Harris corner detector. It denotes that corners are better points to be tracked.) + +So from user point of view, idea is simple, we give some points to track, we receive the optical flow vectors of those points. But again there are some problems. Until now, we were dealing with small motions. So it fails when there is large motion. So again we go for pyramids. When we go up in the pyramid, small motions are removed and large motions becomes small motions. So applying Lucas-Kanade there, we get optical flow along with the scale. + + +Lucas-Kanade Optical Flow in OpenCV +======================================= + +OpenCV provides all these in a single function, **cv2.calcOpticalFlowPyrLK()**. Here, we create a simple application which tracks some points in a video. To decide the points, we use **cv2.goodFeaturesToTrack()**. We take the first frame, detect some Shi-Tomasi corner points in it, then we iteratively track those points using Lucas-Kanade optical flow. For the function **cv2.calcOpticalFlowPyrLK()** we pass the previous frame, previous points and next frame. It returns next points along with some status numbers which has a value of 1 if next point is found, else zero. We iteratively pass these next points as previous points in next step. See the code below: +:: + + import numpy as np + import cv2 + + cap = cv2.VideoCapture('slow.flv') + + # params for ShiTomasi corner detection + feature_params = dict( maxCorners = 100, + qualityLevel = 0.3, + minDistance = 7, + blockSize = 7 ) + + # Parameters for lucas kanade optical flow + lk_params = dict( winSize = (15,15), + maxLevel = 2, + criteria = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03)) + + # Create some random colors + color = np.random.randint(0,255,(100,3)) + + # Take first frame and find corners in it + ret, old_frame = cap.read() + old_gray = cv2.cvtColor(old_frame, cv2.COLOR_BGR2GRAY) + p0 = cv2.goodFeaturesToTrack(old_gray, mask = None, **feature_params) + + # Create a mask image for drawing purposes + mask = np.zeros_like(old_frame) + + while(1): + ret,frame = cap.read() + frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + # calculate optical flow + p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params) + + # Select good points + good_new = p1[st==1] + good_old = p0[st==1] + + # draw the tracks + for i,(new,old) in enumerate(zip(good_new,good_old)): + a,b = new.ravel() + c,d = old.ravel() + mask = cv2.line(mask, (a,b),(c,d), color[i].tolist(), 2) + frame = cv2.circle(frame,(a,b),5,color[i].tolist(),-1) + img = cv2.add(frame,mask) + + cv2.imshow('frame',img) + k = cv2.waitKey(30) & 0xff + if k == 27: + break + + # Now update the previous frame and previous points + old_gray = frame_gray.copy() + p0 = good_new.reshape(-1,1,2) + + cv2.destroyAllWindows() + cap.release() + + +(This code doesn't check how correct are the next keypoints. So even if any feature point disappears in image, there is a chance that optical flow finds the next point which may look close to it. So actually for a robust tracking, corner points should be detected in particular intervals. OpenCV samples comes up with such a sample which finds the feature points at every 5 frames. It also run a backward-check of the optical flow points got to select only good ones. Check ``samples/python2/lk_track.py``). + +See the results we got: + + .. image:: images/opticalflow_lk.jpg + :alt: Lucas-Kanade method for optical flow + :align: center + + +Dense Optical Flow in OpenCV +============================== + +Lucas-Kanade method computes optical flow for a sparse feature set (in our example, corners detected using Shi-Tomasi algorithm). OpenCV provides another algorithm to find the dense optical flow. It computes the optical flow for all the points in the frame. It is based on Gunner Farneback's algorithm which is explained in "Two-Frame Motion Estimation Based on Polynomial Expansion" by Gunner Farneback in 2003. + +Below sample shows how to find the dense optical flow using above algorithm. We get a 2-channel array with optical flow vectors, :math:`(u,v)`. We find their magnitude and direction. We color code the result for better visualization. Direction corresponds to Hue value of the image. Magnitude corresponds to Value plane. See the code below: +:: + + import cv2 + import numpy as np + cap = cv2.VideoCapture("vtest.avi") + + ret, frame1 = cap.read() + prvs = cv2.cvtColor(frame1,cv2.COLOR_BGR2GRAY) + hsv = np.zeros_like(frame1) + hsv[...,1] = 255 + + while(1): + ret, frame2 = cap.read() + next = cv2.cvtColor(frame2,cv2.COLOR_BGR2GRAY) + + flow = cv2.calcOpticalFlowFarneback(prvs,next, None, 0.5, 3, 15, 3, 5, 1.2, 0) + + mag, ang = cv2.cartToPolar(flow[...,0], flow[...,1]) + hsv[...,0] = ang*180/np.pi/2 + hsv[...,2] = cv2.normalize(mag,None,0,255,cv2.NORM_MINMAX) + rgb = cv2.cvtColor(hsv,cv2.COLOR_HSV2BGR) + + cv2.imshow('frame2',rgb) + k = cv2.waitKey(30) & 0xff + if k == 27: + break + elif k == ord('s'): + cv2.imwrite('opticalfb.png',frame2) + cv2.imwrite('opticalhsv.png',rgb) + prvs = next + + cap.release() + cv2.destroyAllWindows() + +See the result below: + + .. image:: images/opticalfb.jpg + :alt: Dense Optical Flow + :align: center + +OpenCV comes with a more advanced sample on dense optical flow, please see ``samples/python2/opt_flow.py``. + +Additional Resources +======================== + + +Exercises +=========== + +#. Check the code in ``samples/python2/lk_track.py``. Try to understand the code. +#. Check the code in ``samples/python2/opt_flow.py``. Try to understand the code. diff --git a/doc/py_tutorials/py_video/py_meanshift/images/camshift_face.gif b/doc/py_tutorials/py_video/py_meanshift/images/camshift_face.gif new file mode 100644 index 0000000000000000000000000000000000000000..d46e1c791588e181580d6b9f6bee293ef041b623 GIT binary patch literal 253144 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 z

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

JxJN#}P(P+B7IFQ2b-*Gac?) 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ξxJH<=RQ%* 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_video/py_meanshift/images/camshift_result.jpg b/doc/py_tutorials/py_video/py_meanshift/images/camshift_result.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f039d21bbff6202117efb2f7cd36803bd6b9bb70 GIT binary patch literal 34939 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�l@% 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 QQF-_sIkF?`A`i3w2LKRcqW}N^ literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_video/py_meanshift/images/meanshift_face.gif b/doc/py_tutorials/py_video/py_meanshift/images/meanshift_face.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f9733146e89582244dd37ae0a442b32da901715 GIT binary patch literal 180533 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�yuyGSl49yU&+aB%%=(NopT5aRx({f2moY& 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±n= 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.rst b/doc/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.rst new file mode 100644 index 000000000..319c414e5 --- /dev/null +++ b/doc/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.rst @@ -0,0 +1,139 @@ +.. _sift_intro: + + +Introduction to SIFT (Scale-Invariant Feature Transform) +************************************************************* + +Goal +====== + +In this chapter, + * We will learn about the concepts of SIFT algorithm + * We will learn to find SIFT Keypoints and Descriptors. + + +Theory +======== + +In last couple of chapters, we saw some corner detectors like Harris etc. They are rotation-invariant, which means, even if the image is rotated, we can find the same corners. It is obvious because corners remain corners in rotated image also. But what about scaling? A corner may not be a corner if the image is scaled. For example, check a simple image below. A corner in a small image within a small window is flat when it is zoomed in the same window. So Harris corner is not scale invariant. + + .. image:: images/sift_scale_invariant.jpg + :alt: Scale-Invariance + :align: center + +So, in 2004, **D.Lowe**, University of British Columbia, came up with a new algorithm, Scale Invariant Feature Transform (SIFT) in his paper, **Distinctive Image Features from Scale-Invariant Keypoints**, which extract keypoints and compute its descriptors. *(This paper is easy to understand and considered to be best material available on SIFT. So this explanation is just a short summary of this paper)*. + +There are mainly four steps involved in SIFT algorithm. We will see them one-by-one. + +1. Scale-space Extrema Detection +-------------------------------------- + +From the image above, it is obvious that we can't use the same window to detect keypoints with different scale. It is OK with small corner. But to detect larger corners we need larger windows. For this, scale-space filtering is used. In it, Laplacian of Gaussian is found for the image with various :math:`\sigma` values. LoG acts as a blob detector which detects blobs in various sizes due to change in :math:`\sigma`. In short, :math:`\sigma` acts as a scaling parameter. For eg, in the above image, gaussian kernel with low :math:`\sigma` gives high value for small corner while guassian kernel with high :math:`\sigma` fits well for larger corner. So, we can find the local maxima across the scale and space which gives us a list of :math:`(x,y,\sigma)` values which means there is a potential keypoint at (x,y) at :math:`\sigma` scale. + +But this LoG is a little costly, so SIFT algorithm uses Difference of Gaussians which is an approximation of LoG. Difference of Gaussian is obtained as the difference of Gaussian blurring of an image with two different :math:`\sigma`, let it be :math:`\sigma` and :math:`k\sigma`. This process is done for different octaves of the image in Gaussian Pyramid. It is represented in below image: + + + .. image:: images/sift_dog.jpg + :alt: Difference of Gaussian + :align: center + +Once this DoG are found, images are searched for local extrema over scale and space. For eg, one pixel in an image is compared with its 8 neighbours as well as 9 pixels in next scale and 9 pixels in previous scales. If it is a local extrema, it is a potential keypoint. It basically means that keypoint is best represented in that scale. It is shown in below image: + + .. image:: images/sift_local_extrema.jpg + :alt: Difference of Gaussian + :align: center + +Regarding different parameters, the paper gives some empirical data which can be summarized as, number of octaves = 4, number of scale levels = 5, initial :math:`\sigma=1.6`, :math:`k=\sqrt{2}` etc as optimal values. + + +2. Keypoint Localization +------------------------------------ + +Once potential keypoints locations are found, they have to be refined to get more accurate results. They used Taylor series expansion of scale space to get more accurate location of extrema, and if the intensity at this extrema is less than a threshold value (0.03 as per the paper), it is rejected. This threshold is called **contrastThreshold** in OpenCV + +DoG has higher response for edges, so edges also need to be removed. For this, a concept similar to Harris corner detector is used. They used a 2x2 Hessian matrix (H) to compute the pricipal curvature. We know from Harris corner detector that for edges, one eigen value is larger than the other. So here they used a simple function, + +.. math: + + \frac{Tr(H)^2}{Det(H)} < \frac{(r+1)^2}{r} \; \text{where} \; r = \frac{\lambda_1}{\lambda_2}; \; \lambda_1 > \lambda_2 + +If this ratio is greater than a threshold, called **edgeThreshold** in OpenCV, that keypoint is discarded. It is given as 10 in paper. + +So it eliminates any low-contrast keypoints and edge keypoints and what remains is strong interest points. + +3. Orientation Assignment +----------------------------------- + +Now an orientation is assigned to each keypoint to achieve invariance to image rotation. A neigbourhood is taken around the keypoint location depending on the scale, and the gradient magnitude and direction is calculated in that region. An orientation histogram with 36 bins covering 360 degrees is created. (It is weighted by gradient magnitude and gaussian-weighted circular window with :math:`\sigma` equal to 1.5 times the scale of keypoint. The highest peak in the histogram is taken and any peak above 80% of it is also considered to calculate the orientation. It creates keypoints with same location and scale, but different directions. It contribute to stability of matching. + + +4. Keypoint Descriptor +----------------------------------------- + +Now keypoint descriptor is created. A 16x16 neighbourhood around the keypoint is taken. It is devided into 16 sub-blocks of 4x4 size. For each sub-block, 8 bin orientation histogram is created. So a total of 128 bin values are available. It is represented as a vector to form keypoint descriptor. In addition to this, several measures are taken to achieve robustness against illumination changes, rotation etc. + +5. Keypoint Matching +---------------------------------------- + +Keypoints between two images are matched by identifying their nearest neighbours. But in some cases, the second closest-match may be very near to the first. It may happen due to noise or some other reasons. In that case, ratio of closest-distance to second-closest distance is taken. If it is greater than 0.8, they are rejected. It eliminaters around 90% of false matches while discards only 5% correct matches, as per the paper. + +So this is a summary of SIFT algorithm. For more details and understanding, reading the original paper is highly recommended. Remember one thing, this algorithm is patented. So this algorithm is included in Non-free module in OpenCV. + + +SIFT in OpenCV +================= + +So now let's see SIFT functionalities available in OpenCV. Let's start with keypoint detection and draw them. First we have to construct a SIFT object. We can pass different parameters to it which are optional and they are well explained in docs. +:: + + import cv2 + import numpy as np + + img = cv2.imread('home.jpg') + gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) + + sift = cv2.SIFT() + kp = sift.detect(gray,None) + + img=cv2.drawKeypoints(gray,kp) + + cv2.imwrite('sift_keypoints.jpg',img) + +**sift.detect()** function finds the keypoint in the images. You can pass a mask if you want to search only a part of image. Each keypoint is a special structure which has many attributes like its (x,y) coordinates, size of the meaningful neighbourhood, angle which specifies its orientation, response that specifies strength of keypoints etc. + +OpenCV also provides **cv2.drawKeyPoints()** function which draws the small circles on the locations of keypoints. If you pass a flag, **cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS** to it, it will draw a circle with size of keypoint and it will even show its orientation. See below example. +:: + + img=cv2.drawKeypoints(gray,kp,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) + cv2.imwrite('sift_keypoints.jpg',img) + +See the two results below: + + .. image:: images/sift_keypoints.jpg + :alt: SIFT Keypoints + :align: center + +Now to calculate the descriptor, OpenCV provides two methods. + +1. Since you already found keypoints, you can call **sift.compute()** which computes the descriptors from the keypoints we have found. Eg: ``kp,des = sift.compute(gray,kp)`` + +2. If you didn't find keypoints, directly find keypoints and descriptors in a single step with the function, **sift.detectAndCompute()**. + +We will see the second method: +:: + + sift = cv2.SIFT() + kp, des = sift.detectAndCompute(gray,None) + +Here kp will be a list of keypoints and des is a numpy array of shape :math:`Number\_of\_Keypoints \times 128`. + +So we got keypoints, descriptors etc. Now we want to see how to match keypoints in different images. That we will learn in coming chapters. + + +Additional Resources +===================== + + + +Exercises +============= diff --git a/doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_boxfilter.jpg b/doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_boxfilter.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2f63d1d5d85504743fe19864135aefba44e7ec1a GIT binary patch literal 12995 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 literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_kp1.jpg b/doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_kp1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9193e85f9a010ce15dd6a1901f0aad1782f1e721 GIT binary patch literal 27166 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 CCQ}9g literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_kp2.jpg b/doc/py_tutorials/py_feature2d/py_surf_intro/images/surf_kp2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05673bd4aecddabfa0399fd5c8a0344178c10ef0 GIT binary patch literal 28476 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 I0Q3330O)j2zW@LL literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_feature2d/py_surf_intro/py_surf_intro.rst b/doc/py_tutorials/py_feature2d/py_surf_intro/py_surf_intro.rst new file mode 100644 index 000000000..6d734dfed --- /dev/null +++ b/doc/py_tutorials/py_feature2d/py_surf_intro/py_surf_intro.rst @@ -0,0 +1,145 @@ +.. _SURF: + + +Introduction to SURF (Speeded-Up Robust Features) +***************************************************** + +Goal +====== + +In this chapter, + * We will see the basics of SURF + * We will see SURF functionalities in OpenCV + + +Theory +========== + +In last chapter, we saw SIFT for keypoint detection and description. But it was comparatively slow and people needed more speeded-up version. In 2006, three people, Bay, H., Tuytelaars, T. and Van Gool, L, published another paper, "SURF: Speeded Up Robust Features" which introduced a new algorithm called SURF. As name suggests, it is a speeded-up version of SIFT. + +In SIFT, Lowe approximated Laplacian of Gaussian with Difference of Gaussian for finding scale-space. SURF goes a little further and approximates LoG with Box Filter. Below image shows a demonstration of such an approximation. One big advantage of this approximation is that, convolution with box filter can be easily calculated with the help of integral images. And it can be done in parallel for different scales. Also the SURF rely on determinant of Hessian matrix for both scale and location. + + .. image:: images/surf_boxfilter.jpg + :alt: Box Filter approximation of Laplacian + :align: center + + +For orientation assignment, SURF uses wavelet responses in horizontal and vertical direction for a neighbourhood of size 6s. Adequate guassian weights are also applied to it. Then they are plotted in a space as given in below image. The dominant orientation is estimated by calculating the sum of all responses within a sliding orientation window of angle 60 degrees. Interesting thing is that, wavelet response can be found out using integral images very easily at any scale. For many applications, rotation invariance is not required, so no need of finding this orientation, which speeds up the process. SURF provides such a functionality called Upright-SURF or U-SURF. It improves speed and is robust upto :math:`\pm 15^{\circ}`. OpenCV supports both, depending upon the flag, **upright**. If it is 0, orientation is calculated. If it is 1, orientation is not calculated and it is more faster. + + .. image:: images/surf_orientation.jpg + :alt: Orientation Assignment in SURF + :align: center + +For feature description, SURF uses Wavelet responses in horizontal and vertical direction (again, use of integral images makes things easier). A neighbourhood of size 20sX20s is taken around the keypoint where s is the size. It is divided into 4x4 subregions. For each subregion, horizontal and vertical wavelet responses are taken and a vector is formed like this, :math:`v=( \sum{d_x}, \sum{d_y}, \sum{|d_x|}, \sum{|d_y|})`. This when represented as a vector gives SURF feature descriptor with total 64 dimensions. Lower the dimension, higher the speed of computation and matching, but provide better distinctiveness of features. + +For more distinctiveness, SURF feature descriptor has an extended 128 dimension version. The sums of :math:`d_x` and :math:`|d_x|` are computed separately for :math:`d_y < 0` and :math:`d_y \geq 0`. Similarly, the sums of :math:`d_y` and :math:`|d_y|` are split +up according to the sign of :math:`d_x` , thereby doubling the number of features. It doesn't add much computation complexity. OpenCV supports both by setting the value of flag **extended** with 0 and 1 for 64-dim and 128-dim respectively (default is 128-dim) + +Another important improvement is the use of sign of Laplacian (trace of Hessian Matrix) for underlying interest point. It adds no computation cost since it is already computed during detection. The sign of the Laplacian distinguishes bright blobs on dark backgrounds from the reverse situation. In the matching stage, we only compare features if they have the same type of contrast (as shown in image below). This minimal information allows for faster matching, without reducing the descriptor's performance. + + .. image:: images/surf_matching.jpg + :alt: Fast Indexing for Matching + :align: center + +In short, SURF adds a lot of features to improve the speed in every step. Analysis shows it is 3 times faster than SIFT while performance is comparable to SIFT. SURF is good at handling images with blurring and rotation, but not good at handling viewpoint change and illumination change. + + +SURF in OpenCV +==================== + +OpenCV provides SURF functionalities just like SIFT. You initiate a SURF object with some optional conditions like 64/128-dim descriptors, Upright/Normal SURF etc. All the details are well explained in docs. Then as we did in SIFT, we can use SURF.detect(), SURF.compute() etc for finding keypoints and descriptors. + +First we will see a simple demo on how to find SURF keypoints and descriptors and draw it. All examples are shown in Python terminal since it is just same as SIFT only. +:: + + >>> img = cv2.imread('fly.png',0) + + # Create SURF object. You can specify params here or later. + # Here I set Hessian Threshold to 400 + >>> surf = cv2.SURF(400) + + # Find keypoints and descriptors directly + >>> kp, des = surf.detectAndCompute(img,None) + + >>> len(kp) + 699 + + +1199 keypoints is too much to show in a picture. We reduce it to some 50 to draw it on an image. While matching, we may need all those features, but not now. So we increase the Hessian Threshold. +:: + + # Check present Hessian threshold + >>> print surf.hessianThreshold + 400.0 + + # We set it to some 50000. Remember, it is just for representing in picture. + # In actual cases, it is better to have a value 300-500 + >>> surf.hessianThreshold = 50000 + + # Again compute keypoints and check its number. + >>> kp, des = surf.detectAndCompute(img,None) + + >>> print len(kp) + 47 + +It is less than 50. Let's draw it on the image. +:: + + >>> img2 = cv2.drawKeypoints(img,kp,None,(255,0,0),4) + + >>> plt.imshow(img2),plt.show() + +See the result below. You can see that SURF is more like a blob detector. It detects the white blobs on wings of butterfly. You can test it with other images. + + .. image:: images/surf_kp1.jpg + :alt: SURF Keypoints with Orientation + :align: center + +Now I want to apply U-SURF, so that it won't find the orientation. +:: + + # Check upright flag, if it False, set it to True + >>> print surf.upright + False + + >>> surf.upright = True + + # Recompute the feature points and draw it + >>> kp = surf.detect(img,None) + >>> img2 = cv2.drawKeypoints(img,kp,None,(255,0,0),4) + + >>> plt.imshow(img2),plt.show() + +See the results below. All the orientations are shown in same direction. It is more faster than previous. If you are working on cases where orientation is not a problem (like panorama stitching) etc, this is more better. + + .. image:: images/surf_kp2.jpg + :alt: Upright-SURF + :align: center + +Finally we check the descriptor size and change it to 128 if it is only 64-dim. +:: + + # Find size of descriptor + >>> print surf.descriptorSize() + 64 + + # That means flag, "extended" is False. + >>> surf.extended + False + + # So we make it to True to get 128-dim descriptors. + >>> surf.extended = True + >>> kp, des = surf.detectAndCompute(img,None) + >>> print surf.descriptorSize() + 128 + >>> print des.shape + (47, 128) + +Remaining part is matching which we will do in another chapter. + +Additional Resources +======================= + + +Exercises +============== diff --git a/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/brief.jpg b/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/images/brief.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c901ee16fabed3207d321778bdee42044c89b257 GIT binary patch literal 4840 zcmbW3XH?T$m&X4|Afbki1QG~M5D+QSTL5Vmnsg9p(m}cbMd?ilO{#!M2a#R{G_=rr zmENm(sZvxN?)%;~GiyH0%yZVWznp!}+P}5eS!e&5{<8#7-&NI61wbGG09`HM&n%z} z5JQNFh#Kb<+>ggL88X22d z+dQ$gvv+Xx^z!z3hV}Ie4hanlkBE#)NPLr&oRXTBo|BuGUr<<7TvAnCQ(ITx(D{AfT(}L1+L4;3q`)lc|aZvPf6+9uh?GG+vyIr&M&F z=8X^gt7XCiTyX+J`#-S#W!%tQv;Stw;3o3`%ZD&xiMx~ z73TB!=Ev1Kp1zleV18EEP|&NHEl)hG+);Yegi-13IvE)u&(+E^0Jh{?!r9T3-@y+N zyv8Oa(6J8yHftYZ&p=}9%q{Dk>m5#>rHvCJ`=X4z5k9}(r!m2yhad!(-TMKJCGt$E z^cyS5PLY%BEN1=8DlxEMHFz%Qj892mz%#pYG;6Ix>0D1ScSZ%C%j#Z{RYN?mZWJ$okM~t z4kQb~z=I!ZxN?Vr8Shhjwu51uM>&hSv>IFjG`5iyTc&Yvw?*Yk&dM@KNBZadr^WX# z9>x3C33s^1bt-@3P6~s2z!hPEJN(jAj1jd6mk>j@xeU4X!4ld2Y+|UU6q7s7_qZpU zN=rK17AH9@(*SRmoX#q|fNvg%xlXPQXwSNlxgw{MX3nx?T*MVPCigZ~X7;!Q?!U#8 zbilFZnr=`QM5iB5c#2E<_XG{DC*1uJ48g4G`0ZHDagf!;_Z5C$t|0oPVLMA_*9-5B z;)UI3)Jlm38Hen$NfsVdN)3arkb3DMRm!fTDz#}^=mP8oyl|#*ch@wYg=m68+_Ha6 zz4Ap=ssM~@^_`L==VxBX`|8Q1h6WrL6WtA=YBx4EES3AEe3JL~OzpbPB|AjfV^!Rt zZ^k@+xQ>A1nANzC!-MLBzTjTge*CQQJw!O;w$ZJ_gLiNCU%oAZSPedwCrSidwXvs& zoDW;~;qRzn+&YS@OlUG*2+N9|&fJ-A>6)ZzxY3}hVh@t7{O%#8@5`?RYGndH;>>J5 zwkGIu`RD6vpu)g`@l&ub^6dwxd0ANkZ%9=djjs6CS_NL=vH84HzgW}t@bG$P5H^5P8{tn$N*?O z(pxq*J}D9=yGgW)7(R0^o@=}uO5jcH{kb0IfT4Xu6xzD1RE8zmbnliW15Ot~Eh*Fb zdmRmN;4#h37hUgPdS+y$E>VEgVxK-};`4=%R)R++AEYHR@o8bm5~pH6>YP0mh|D#1 zNEvBJALLetF7>Pj2-lpVk#tkRW9d6$M%hitrpDBf2q?iq$i183PcpQOVO8)HfA1;a zrgZb6i4WE0qiRlCPmi)*%esGkqia)L`Id`K)*sy+$zCj+H=bBzh0;(lj0% zz4r}UR^1WnX<6i0PY&{w<~J>7S&OoJ$WrLM6z+V=61kdw*w^H*DbqK9dV_Yl;&GA$ zL36{F+v6EAe=shU;8uu6*@hSGd`5>k2)K;$^LuiIF{B0GHpaKM&V&czG^7ZC)CB}n zPfDkL*d;rv);Mp94(^5w8xH*eNOJ?Qt~)#1Wfu2hs-DIuMPjUsiXdFc6rY3Fd58?Z zoLTW>Z=WsKx@^S*rV7}L%`c8XUt@jbL`Ym%tnIbLW_GqVHJOwGnP_jZelw>?)@p`Q z9l3#=?x|}ZST-cz282|8GxFNfl5ZHE^1j!Hm5q^G!`j^BkkTD(^B`Gu7#e7>IYwqg zPf6w6MYoKH(3rn=DvC_9F$-9W>8w(;%-n3mwATZW^6C`h#E0sCeZMJ?puNN-@@+4P zNx+SM9|~O18F-Pdo4##&T`y4eiGcjlD_+#PjdxyqPP0(qQdSE>elkugeA|!BPl}Ar z=0P8Kx84}~sXRQnktp+kVl1$Fz#18Gw?avk4(+{W%^Kp>33!{>Xwcu`ndgxld``yq zC7e7{&}oW3h1A#5gHjHtO~_dgw*<|e>wGt&CB0( zGMt#1)o-}$56Q7zZ)b@#@_;GnxyNbo0H+M!UW(Ty@817Pv7l@jcH*qS$z)E|uK^Kj z-I5l3o9nbE9Qa)=p{V|$(qO^;Mjw6s)%g1CEh$-T7}d%Uc}s0ill@1on^GTP)9+c^IuqpOcDkcq-1}87?<$u$xDJCPntxf* z!)YW8PFxP#sA)Wz!!CyTbgxR9fu;(i4WzM3Qr@P&t#l~k(|O-?usMd#Xs9@E$|lLh z<^vkbruG7*@L*X-)`8ciz1PA+$Av*nBGtlOY@WEYV}C)3SU0|=yEdo>=d2FDpHsJ- zEDm;P?+)MjaY|F_9A@@ZTXT}4*#>DH;ERklRLdrhh?~8~;)0XqYzpd!LRnD1yG($M za#!}T)!03EjyVFk(s~+rjq+Dk#@gDNhpKOx-$uXL-0MuSwP&eXd|lKt-#qbLJq z>n`Q=W74HV!Ztc;#nuBUEQxpM7KeU=WJGl&TuQaokA$BD+edvS4T;!>dK zz>LrO-VZtQf~JJ>W|iULoVb(w z_CJh?mybv=0S&OgcT=qXgSY8LVO>FrWPIpV$B^}8}Hi&dL!1=IS~VZ&Ah#z2micTkH;OgK`R^dixT%Z zNi>z??bPEmTWo1AITuDWmY-PJ2B&^8S(@0fHBuF3z@jd@#vH}8cat=MmovI5;BFC7 z;IKP}B>e?{b-26{yJs*#@zO%?pp7~q|C3dqM_A&X`zC_z-71Cwm&){OD#fmmrR@)Z zrqrJhxZU^MHhsMSa6?7Lhp8i72ORxNL`2{(laK`Rq{Dm_FXtDfAn4VH^8v-@;Cl0$ zt6)85$qd}JDf{~y&W|<2pwGBC*0GwWFR&izFIj9+TOXvBz+@ehC*|=WrfZ=fo5Y1f zsH>v;@Kw#(&=xU+7(Jk)LJvZ9T_i@IpyX>)UI`3;?GvC$vr*x?A?H3-_`MB6~PaFUF1>t>v)d{&EW;7O#jH_Jf@dy_`c>pSgS zKBF=>)MP&I1R;Vh0<qiR~v{At`yg|DwlbmCFKf{=7(J8NTi zr%#GY9g$mT1cK~Z;`uPtd+*rI^h@d?Cx3 zv8Gn!EE;;8@B1`VEP`?Lki{+lrbNaZ~AKxXU;blv(xm^#N=rMttvbjYZ>qUviJ#L zUGqQq)=8v4$vm!>n~|7FwruWVrlyE#h9Wr{F`7sNHR9b+qcIAO}XBgz}AIpwbXRJZ{Isv%ypAXIoI} zf;qB_20W|?s~2?V+OW*CsXOT_1YcaG>+8y}-Jg&0%H(&|)qi41mhbm9|5kA)m{8j=$j>;MK?LvQj z6uGIiFv(v;9q&n9XUt67Vq-M4s6=9s3oqHNi9ejG#wvkO&6M<~U~zpfa^VEn!)`uP zF1Vlj*b%U6pA!Y}{$t!GtHw~#rT4(@ByL!4T*M3<)!#$PH-JYFd1k>-2T|Jvx+6&_ z>|aqIfB1^PVQhQpz~Lg@8QZ;vvB~ZAXH9R;H;hTs@BqoG?pH~ao1~;Q!SPl2B$;ft z;QKJ+J)vFD;{~oQ_e#3{cY{{ZxSTbOFuLYbyI174!)jpe>9r9?Qw5{ zSFCj}DRI-gcDW)jRVBuoc$|ZhK3V}QTO~V4!V+H8vr$u~{*`TPG|OfEgza>s@E&