opencv学习——Moments()函数,计算物体形状方向

opencv中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩。
class Moments { public: …

// 空间矩

double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;

// 中心矩

double mu20, mu11, mu02, mu30, mu21, mu12, mu03;

// 中心归一化矩 double nu20, nu11, nu02, nu30, nu21, nu12, nu03;

}
**针对一幅图像,我们把像素的坐标看成是一个二维随机变量(X, Y),那么一副灰度图可以用二维灰度图密度函数来表示,因此可以用矩来描述灰度图像的特征。**图像可以看成是一个平板的物体,其一阶矩和零阶矩就可以拿来计算某个形状的重心,而二阶矩就可以拿来计算形状的方向。
opencv学习——Moments()函数,计算物体形状方向_第1张图片
其中M00即零阶矩,M20和M02为二阶矩,接下来计算物体形状的方向
在这里插入图片描述
opencv学习——Moments()函数,计算物体形状方向_第2张图片

#region 三角函数和反三角函数
 
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Messaging;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 正弦、反正弦
            //正弦
            double sinAngleValue1 = 30;//角度值:30度。
            double sinRadianValue1 = Math.PI * sinAngleValue1 / 180;//求弧度值
            double sinValue1 = Math.Sin(sinRadianValue1);//求sin30度,其实sin30度 = sin(PI/6),但是,数学上或代码上,常常用弧度PI/6,来计算sin(PI/6),其他函数同理。
            Console.WriteLine(sinValue1);
            //反正弦
            double sinValue2 = 0.5;//正弦值 = 0.5。
            double sinRadianValue2 = Math.Asin(sinValue2);//求弧度值
            double sinAngleValue2 = sinRadianValue2 / Math.PI * 180;//根据弧度值,来求角度值。
            Console.WriteLine(sinAngleValue2);
            Console.WriteLine();
            #endregion
 
            #region 正切、反正切
            Console.WriteLine();
            Console.WriteLine();
            //正切
            double tanAngleValue1 = 15;//角度值
            double tanRadianValue1 = Math.PI * tanAngleValue1 / 180;//求弧度值
            double tanValue1 = Math.Tan(tanRadianValue1);//tan值
            Console.WriteLine(tanValue1);//tan值
 
            double tanValue2 = 1;//正切值
            double tanRadianValue2 = Math.Atan(tanValue2);//求弧度值
            double tanAngleValue2 = tanRadianValue2 / Math.PI *180;//求角度
            Console.WriteLine(tanAngleValue2);
            #endregion
            Console.ReadLine();
        }
    }
}
#endregion

opencv学习——Moments()函数,计算物体形状方向_第3张图片
opencv学习——Moments()函数,计算物体形状方向_第4张图片

你可能感兴趣的:(OpenCV,opencv)