Image Moments {#tutorial_moments} ============= @tableofcontents @prev_tutorial{tutorial_bounding_rotated_ellipses} @next_tutorial{tutorial_point_polygon_test} | | | | -: | :- | | Original author | Ana Huamán | | Compatibility | OpenCV >= 3.0 | Goal ---- In this tutorial you will learn how to: - Use the OpenCV function @ref cv::moments - Use the OpenCV function @ref cv::contourArea - Use the OpenCV function @ref cv::arcLength Theory ------ Code ---- @add_toggle_cpp This tutorial code's is shown lines below. You can also download it from [here](https://github.com/opencv/opencv/tree/master/samples/cpp/tutorial_code/ShapeDescriptors/moments_demo.cpp) @include samples/cpp/tutorial_code/ShapeDescriptors/moments_demo.cpp @end_toggle @add_toggle_java This tutorial code's is shown lines below. You can also download it from [here](https://github.com/opencv/opencv/tree/master/samples/java/tutorial_code/ShapeDescriptors/moments/MomentsDemo.java) @include samples/java/tutorial_code/ShapeDescriptors/moments/MomentsDemo.java @end_toggle @add_toggle_python This tutorial code's is shown lines below. You can also download it from [here](https://github.com/opencv/opencv/tree/master/samples/python/tutorial_code/ShapeDescriptors/moments/moments_demo.py) @include samples/python/tutorial_code/ShapeDescriptors/moments/moments_demo.py @end_toggle Explanation ----------- Result ------ Here it is: ![](images/Moments_Source_Image.jpg) ![](images/Moments_Result1.jpg) ![](images/Moments_Result2.jpg)