热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

标的_opencv类简单分析:Point

篇首语:本文由编程笔记#小编为大家整理,主要介绍了opencv类简单分析:Point相关的知识,希望对你有一定的参考价值。定义

篇首语:本文由编程笔记#小编为大家整理,主要介绍了opencv类简单分析: Point相关的知识,希望对你有一定的参考价值。



定义

point的定义其实只是一个别名,如下,它最终是由Point_模板得来的

typedef Point_<int> Point2i;
typedef Point_ Point2l;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;
typedef Point2i Point

下面简单分析下Point_模板
1. Point_是一个由坐标’ x ‘和’ y ‘指定的2D点的模板类
2. 类的实例可以与C结构体、CvPoint、CvPoint2D32f互换&#xff0c;还有一个转换操作符将点坐标转换为指定类型&#xff0c;从浮点坐标到整数坐标的转换是通过四舍五入来完成的&#xff0c;通常&#xff0c;转换对每个坐标使用这个操作
3. 除了上述声明中列出的类成员外&#xff0c;还对点执行以下操作:

pt1 &#61; pt2 &#43; pt3;
pt1 &#61; pt2 - pt3;
pt1 &#61; pt2 * a;
pt1 &#61; a * pt2;
pt1 &#61; pt2 / a;
pt1 &#43;&#61; pt2;
pt1 -&#61; pt2;
pt1 *&#61; a;
pt1 /&#61; a;
double value &#61; norm(pt); // L2 norm
pt1 &#61;&#61; pt2;
pt1 !&#61; pt2;


template<typename _Tp> class Point_
public:
typedef _Tp value_type;
//默认构造函数
Point_();
Point_(_Tp _x, _Tp _y);
Point_(const Point_& pt);
Point_(const Size_<_Tp>& sz);
Point_(const Vec<_Tp, 2>& v);
Point_& operator &#61; (const Point_& pt);
//转换成其它数据类型
template<typename _Tp2> operator Point_<_Tp2>() const;
//转换成老式的C结构体
operator Vec<_Tp, 2>() const;
//点积
_Tp dot(const Point_& pt) const;
//用双精度算术计算的点积
double ddot(const Point_& pt) const;
//叉积/向量积
double cross(const Point_& pt) const;
//检查点是否在指定的矩形内
bool inside(const Rect_<_Tp>& r) const;
_Tp x; //点的x坐标
_Tp y; //点的y坐标
;

用法例子&#xff1a;

...
int main(int argc, char *argv[])
Point2f a(0.3f, 0.2f), b(0.1f, 0.4f);
Point pt &#61; (a &#43; b)*10.f;
cout <<"pt: "<", " < double aa &#61; a.ddot(b); // 0.3 x 0.1 &#43; 0.2 x 0.4 &#61; 0.03 &#43; 0.08 &#61; 0.11
double bb &#61; a.cross(b); //暂未弄清计算公式
cout <<"aa: "< cout <<"bb: "< return 0;

输出结果&#xff1a;

pt: 4, 6
aa: 0.11
bb: 0.1

推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文详细介绍了Java中的访问器(getter)和修改器(setter),探讨了它们在保护数据完整性、增强代码可维护性方面的重要作用。通过具体示例,展示了如何正确使用这些方法来控制类属性的访问和更新。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本文探讨了如何通过最小生成树(MST)来计算严格次小生成树。在处理过程中,需特别注意所有边权重相等的情况,以避免错误。我们首先构建最小生成树,然后枚举每条非树边,检查其是否能形成更优的次小生成树。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
author-avatar
喂_早安学院_703
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有