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),那么一副灰度图可以用二维灰度图密度函数来表示,因此可以用矩来描述灰度图像的特征。**图像可以看成是一个平板的物体,其一阶矩和零阶矩就可以拿来计算某个形状的重心,而二阶矩就可以拿来计算形状的方向。

其中M00即零阶矩,M20和M02为二阶矩,接下来计算物体形状的方向

#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);#endregionConsole.ReadLine();}}
}
#endregion


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

  1. c语言学习-编写函数计算式子:S=2*1*1!+2*2*2!+……+2n*n!的值。要求编写自定义函数分别求解2n和n!,在编写求解S的函数。

    编写函数计算式子:S=2 * 1 * 1!+2 * 2 * 2!+--+2n * n!的值.要求编写自定义函数分别求解2n和n!,在编写求解S的函数. 程序流程图: 代码: #include<s ...

  2. matlab学习—分段函数计算

    分段函数计算 分段函数用if函数,代码如下(示例): function f=fun(x) if x==10f=cos(x+1)+sqrt(x^2+1); else f=x*sqrt(x+sqrt(x) ...

  3. OpenCV学习+常用函数记录①:图像的基本处理

    OpenCV 图像的基本处理 1.1 图片读取和显示 1.2 写入文件(保存) 1.3 像素操作 1.4 图片剪切 1.5 镜像处理: 1.6 图像缩放 1.7 图像位移 1.8 图像旋转 1.9 仿 ...

  4. 【opencv学习】【运动物体检测】

    今天学习运动物体检测 一:帧差法 捕获摄像头的运动的手 import cv2 import numpy as np# 如果我们想捕获一些运动的物体,每一帧图像中,不动的部分称之为背景,运动的物体称之为 ...

  5. OpenCV学习(函数)

    OpenCV[未完结] 1_图片读取与显示 imread()函数:读取图片 param1:图片的名称 如果当前读入的图片与该脚本在相同目录下,则路径可以为相对路径 如果当前读入的图片不与该脚本在相同目 ...

  6. Matlab函数学习---sum函数(计算矩阵、数组和向量元素总和)

    实例1:创建一个向量并计算向量元素总和 实例2:创建一个矩阵并计算矩阵每列元素的总和 实例3:创建一个矩阵并计算矩阵每行元素的总和 实例4:创建一个三维数组并计算数组特定切片元素(维度1*维度2)的总 ...

  7. openCV学习-day02--如何计算图像色彩种类

    import cv2 img = cv2.imread('./image.jpg') # cv2.namedWindow('img', cv2.WINDOW_NORMAL) #可以随意调节窗口大小 # ...

  8. [548]OpenCV之cv2函数

    1.主要函数 1. cv2.imread():读入图片,共两个参数,第一个参数为要读入的图片文件名,第二个参数为如何读取图片,包括 cv2.IMREAD_COLOR:读入一副彩色图片:cv2.IMRE ...

  9. 【youcans 的 OpenCV 学习课】7. 空间域图像滤波

    专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 [youcans 的 OpenCV 学习课]7. 空间域图像滤波 图像滤波是在尽可能保留图像 ...

最新文章

  1. 【逆向】UE4 渲染流程分析
  2. storm的基本概念
  3. iOS9的几个新关键字(nonnull、nullable、null_resettable、__null_unspecified)
  4. 【sklearn学习】模型网格化调参
  5. java加载dll UnsatisfiedLinkError: no mydll in java.library.path
  6. 不可上位!数据结构队列,老实排队,Java实现数组模拟队列及可复用环形队列
  7. 红旗linux修改个人密码,LINUX红旗5.0的用户名和密码!
  8. 对于一个指针可以多次使用delete_【C++札记】new和delete
  9. C语言之抽象数据类型(四十七)
  10. Linux下conda镜像源配置
  11. LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义
  12. 如何扒微信小程序源码
  13. 仙侣情缘之麒麟劫java_《仙侣情缘之麒麟劫》详细流程攻略[多图]
  14. prisma2.0文档学习/翻译
  15. 中标麒麟桌面系统自定义屏保
  16. 亚马逊SP-API对接JAVA版(amazon selling-partner)
  17. Mac的app store打开白屏解决方法
  18. 全志V40/A40I的lichee 的编译
  19. 实现一个简单的 vue-router
  20. 大西洋月刊 2019年7月_Web开发人员月刊2018年10月

热门文章

  1. UIColor 常用方法
  2. 二分过滤文件代码分享
  3. 聊聊百度搜索背后的故事
  4. [英语阅读]投机者-Lame duck
  5. 液晶屏背光源该如何检测?
  6. 小人再狡猾也斗不过老江湖,辨别小人就看这三个地方,说得真准
  7. DSP的GEL文件详解
  8. 云计算零基础(2)配置yum仓库
  9. 会放弃的人生才会更洒脱
  10. 碰壁会反弹的小球的实现