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),那么一副灰度图可以用二维灰度图密度函数来表示,因此可以用矩来描述灰度图像的特征。**图像可以看成是一个平板的物体,其一阶矩和零阶矩就可以拿来计算某个形状的重心,而二阶矩就可以拿来计算形状的方向。
其中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()函数,计算物体形状方向相关推荐
- 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 ...
- matlab学习—分段函数计算
分段函数计算 分段函数用if函数,代码如下(示例): function f=fun(x) if x==10f=cos(x+1)+sqrt(x^2+1); else f=x*sqrt(x+sqrt(x) ...
- OpenCV学习+常用函数记录①:图像的基本处理
OpenCV 图像的基本处理 1.1 图片读取和显示 1.2 写入文件(保存) 1.3 像素操作 1.4 图片剪切 1.5 镜像处理: 1.6 图像缩放 1.7 图像位移 1.8 图像旋转 1.9 仿 ...
- 【opencv学习】【运动物体检测】
今天学习运动物体检测 一:帧差法 捕获摄像头的运动的手 import cv2 import numpy as np# 如果我们想捕获一些运动的物体,每一帧图像中,不动的部分称之为背景,运动的物体称之为 ...
- OpenCV学习(函数)
OpenCV[未完结] 1_图片读取与显示 imread()函数:读取图片 param1:图片的名称 如果当前读入的图片与该脚本在相同目录下,则路径可以为相对路径 如果当前读入的图片不与该脚本在相同目 ...
- Matlab函数学习---sum函数(计算矩阵、数组和向量元素总和)
实例1:创建一个向量并计算向量元素总和 实例2:创建一个矩阵并计算矩阵每列元素的总和 实例3:创建一个矩阵并计算矩阵每行元素的总和 实例4:创建一个三维数组并计算数组特定切片元素(维度1*维度2)的总 ...
- openCV学习-day02--如何计算图像色彩种类
import cv2 img = cv2.imread('./image.jpg') # cv2.namedWindow('img', cv2.WINDOW_NORMAL) #可以随意调节窗口大小 # ...
- [548]OpenCV之cv2函数
1.主要函数 1. cv2.imread():读入图片,共两个参数,第一个参数为要读入的图片文件名,第二个参数为如何读取图片,包括 cv2.IMREAD_COLOR:读入一副彩色图片:cv2.IMRE ...
- 【youcans 的 OpenCV 学习课】7. 空间域图像滤波
专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 [youcans 的 OpenCV 学习课]7. 空间域图像滤波 图像滤波是在尽可能保留图像 ...
最新文章
- 【逆向】UE4 渲染流程分析
- storm的基本概念
- iOS9的几个新关键字(nonnull、nullable、null_resettable、__null_unspecified)
- 【sklearn学习】模型网格化调参
- java加载dll UnsatisfiedLinkError: no mydll in java.library.path
- 不可上位!数据结构队列,老实排队,Java实现数组模拟队列及可复用环形队列
- 红旗linux修改个人密码,LINUX红旗5.0的用户名和密码!
- 对于一个指针可以多次使用delete_【C++札记】new和delete
- C语言之抽象数据类型(四十七)
- Linux下conda镜像源配置
- LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义
- 如何扒微信小程序源码
- 仙侣情缘之麒麟劫java_《仙侣情缘之麒麟劫》详细流程攻略[多图]
- prisma2.0文档学习/翻译
- 中标麒麟桌面系统自定义屏保
- 亚马逊SP-API对接JAVA版(amazon selling-partner)
- Mac的app store打开白屏解决方法
- 全志V40/A40I的lichee 的编译
- 实现一个简单的 vue-router
- 大西洋月刊 2019年7月_Web开发人员月刊2018年10月