C++:CV::Point函数简介

cv::Point 是 OpenCV 库中用于表示二维坐标系下点的一个基本数据类型。它提供了在图像处理、计算机视觉等领域中定位和操作点的能力。以下是关于 cv::Point 的详细介绍:

基本属性

  • 类型cv::Point 是一个模板类,通常用于处理整数坐标(cv::Point_<int>,简写为 cv::Point),但也可以处理浮点数坐标(如 cv::Point2f,表示使用浮点数坐标的点)。
  • 成员变量:主要包含两个成员变量 x 和 y,分别代表点在二维坐标系中的横坐标和纵坐标。

构造函数与初始化

  • 默认构造函数:创建一个点,其坐标初始化为 (0, 0)
  • 值构造函数:可以通过传递两个参数(x 和 y 坐标)来创建并初始化一个点,例如 cv::Point p(10, 20) 或 cv::Point2f pf(10.5, 20.5)
  • 复制构造函数:可以通过另一个点来创建并初始化一个新点,例如 cv::Point p1(10, 20); cv::Point p2 = p1;

使用场景

cv::Point 在 OpenCV 中有着广泛的应用,包括但不限于:

  • 图像绘制:用于指定绘制线条、矩形、圆等图形时的起点和终点。
  • 特征点检测与匹配:在特征点检测算法中,检测到的特征点通常以 cv::Point 或其浮点数版本(如 cv::Point2f)的形式表示。
  • 图像变换:在进行图像仿射变换、透视变换等操作时,变换矩阵中的点也常用 cv::Point 或其变体表示。

变体类型

OpenCV 提供了多种 cv::Point 的变体类型,以适应不同的需求:

  • cv::Point2i:整数坐标的点,等同于 cv::Point
  • cv::Point2f:浮点数坐标的点,适用于需要更高精度的场景。
  • cv::Point2d:双精度浮点数坐标的点,精度更高。
  • cv::Point3icv::Point3fcv::Point3d:分别表示三维空间中的整数、浮点数和双精度浮点数坐标的点。

示例代码

以下是一个简单的示例,展示了如何在 OpenCV 中使用 cv::Point 来绘制一个矩形:

#include <opencv2/opencv.hpp>  int main() {  // 创建一个空白的黑色图像  cv::Mat img = cv::Mat::zeros(480, 640, CV_8UC3);  // 定义矩形的两个对角点  cv::Point tl(100, 100); // 左上角  cv::Point br(300, 300); // 右下角  // 绘制矩形,颜色为蓝色(BGR格式),线条宽度为2  cv::rectangle(img, tl, br, cv::Scalar(255, 0, 0), 2);  // 显示图像  cv::imshow("Rectangle", img);  cv::waitKey(0);  return 0;  
}

该代表表示在[480,640]的矩阵里面绘制一个红色区域

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决打印PDF文本不清楚的处理办法

之前打印PDF格式的电子书&#xff0c;不清晰&#xff0c;影响看书的心情&#xff0c;有时看到打印的书的质量&#xff0c;根本不想看&#xff0c;今天在打印一本页数不多&#xff0c;但PDF格式的书感觉也不太清楚&#xff0c;我想应该有办法解决&#xff0c;我使用的是解决福昕…

2017年,我成为了技术博主

2017年9月&#xff0c;我已经大三了。 >>上一篇&#xff08;爪哇&#xff0c;我初窥门径&#xff09; 我大二学了很多java技术&#xff0c;看似我一会就把javaweb/ssh/ssm这些技术栈给学了。 这些技术确实不难&#xff0c;即便是我&#xff0c;我都能学会&#xff0c;…

可以添加todo清单桌面小组件的便签哪个好?

在我们快节奏的生活中&#xff0c;有效的时间管理和任务追踪是必不可少的。为了实现这一目标&#xff0c;许多人选择使用桌面便签&#xff0c;尤其是那些具有Todo清单桌面小组件的便签。但是&#xff0c;面对市场上众多选择&#xff0c;可以添加todo清单桌面小组件的便签哪个好…

C++八股(四)之STL

目录 一、讲一下C++的STL 二、vector list异同⭐⭐ 三、vector的底层实现⭐⭐ 四、vector和deque的区别 ⭐⭐ 五、deque和queue的区别⭐⭐ 六、为什么list里面还要再定义一个sort函数⭐ 七、STL底层数据结构实现⭐ 八、利用迭代器删除元素会发生什么?⭐⭐⭐⭐ 九、map…

14 Portainer轻量级图形化监控

目录 Portainer&#xff1a;Docker轻量级可视化工具 1. 安装与访问 2. 使用 3. Portainer配置 nginx Portainer&#xff1a;Docker轻量级可视化工具 Portainer是一款轻量级的应用&#xff0c;它提供了图形化界面&#xff0c;用于方便地管理Docker环境&#xff0c;包括单机…

db期末复习自用[应试向 附习题]

第一章 数据库系统实现整体数据的结构化&#xff0c;主要特征之一&#xff0c;是db区别于文件系统的本质区别。 数据库系统三个阶段&#xff1a;人工、文件、数据库系统。 数据库管理系统的功能&#xff1a;数据库定义、操纵 、&#xff08;保护、存储、维护&#xff09;、数…

Jmeter在信息头中设置Bearer与 token 的拼接值

思路&#xff1a;先获取token&#xff0c;将token设置成全局变量&#xff0c;再与Bearer拼接。 第一步&#xff1a;使用提取器将token值提取出来&#xff0c;使用setProperty函数将提取的token值设置成全局变量&#xff0c;在登录请求后面添加BeanShell取样器 或者 BeanShell后…

数据结构作业/2024/7/9

2>实现双向循环链表的创建、判空、尾插、遍历、尾删、销毁 fun.c #include "head.h" //1.双向循环链表的创建 doubleloop_ptr create_list() …

STM32实战篇:按键控制LED

按键控制LED 功能要求 有两个按键&#xff0c;分别控制两个LED灯。当按键按下后&#xff0c;灯的亮暗状态改变。实物如下图所示&#xff1a; 由图可知&#xff0c;按键一端直接接地&#xff0c;故另一端所对应IO引脚的输入模式应该为上拉输入模式。 实现代码 #include "…

《C++20设计模式》中单例模式

文章目录 一、前言二、饿汉式1、实现 三、懒汉式1、实现 四、最后 一、前言 单例模式定义&#xff1a; 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;其主要目的是确保一个类只有一个实例&#xff0c;并提供全局访问点来访问这个实例。…

mysql实战入门-基础篇

目录 1、MySQL概述 1.1、数据库相关概念 1.2、MySQL数据库 1.2.1、版本 1.2.2、下载 1.2.3、安装 输入MySQL中root用户的密码,一定记得记住该密码 1.2.4、启动停止 1.2.5、客户端连接 1.2.6、数据模型 2、SQL 2.1、SQL通用语法 2.2、SQL分类 2.3、DDL 2.3.1、数据…

GNU/Linux - Linux Kernel Device model

Linux 设备模型是 Linux 内核中的一个框架&#xff0c;它提供了一种统一、一致的方式来管理和表示硬件设备。设备模型抽象了硬件的细节&#xff0c;使得开发和维护驱动程序和子系统变得更加容易。以下是 Linux 设备模型的关键组成部分和概念&#xff1a; 关键组成部分 设备 (D…

算力感知网络系统架构模型、任务模型、 通信模型、计算和存储资源模型

目录 移动边缘计算——计算卸载 计算卸载 算力感知网络系统架构模型、任务模型、 通信模型、计算和存储资源模型 算力感知路由和算力资源分配 香农定理 1. 通信系统设计与优化 2. 数据压缩 3. 杂音抵消 4. 信道容量评估 香农公式计算 计算步骤 举例说明 传输信号的…

金融电商社交媒体等领域的大数据应用案例

大数据在各个行业都有广泛的应用&#xff0c;以下是几个典型领域的例子&#xff1a; 金融领域&#xff1a; 大数据帮助金融机构进行风险评估和信贷决策&#xff0c;通过收集和分析客户的交易历史、信用记录等信息&#xff0c;预测贷款违约率。例如&#xff0c;信用卡公司可以…

PHP验证日本免费电话号码格式

首先&#xff0c;您需要了解免费电话号码的格式。 日本免费电话也就那么几个号段&#xff1a;0120、0990、0180、0570、0800等开头的&#xff0c;0800稍微特殊点&#xff0c;在手机号里面有080 开头&#xff0c;但是后面不一样了。 关于免费电话号码的划分&#xff0c;全部写…

【前端从入门到精通:第十二课: JS运算符及分支结构】

JavaScript运算符 算数运算符 关于自增自减运算 自增或者自减运算就是在本身的基础上进行1或者-1的操作 自增或者自减运算符可以在变量前也可以在变量后&#xff0c;但是意义不同 自增自减运算符如果在变量前&#xff0c;是先进行自增或者自减运算&#xff0c;在将变量给别人用…

Python面试题:请解释什么是反射(reflection)?

在计算机科学中&#xff0c;反射&#xff08;reflection&#xff09;是指程序在运行时检查、修改和调用自身结构的能力。这种能力允许程序在运行时动态地获取有关其自身的信息&#xff08;如类、方法、属性等&#xff09;&#xff0c;并进行操作。反射通常用于创建灵活且可扩展…

idea集成本地tomcat

由于网课老师使用的是eclipse,但是……本人用的是idea,所以不得不去找教程。 解决方案1&#xff1a; https://blog.csdn.net/weixin_54048131/article/details/131359793 这个地方&#xff0c;路径一定要到这个tomcat 否则不识别&#xff1a; 这里的JRE也要配置一下 新问题&…

力扣1943.描述绘画结果

力扣1943.描述绘画结果 map存差分 遍历每组数据 加入res class Solution {public:vector<vector<long long>> splitPainting(vector<vector<int>>& segments) {map<int,long long> mp;for(auto t:segments){mp[t[0]] t[2];mp[t[1]] - t[…

ESP32的I2S引脚及支持的音频标准使用说明

ESP32 I2S 接口 ESP32 有 2 个标准 I2S 接口。这 2 个接口可以以主机或从机模式&#xff0c;在全双工或半双工模式下工作&#xff0c;并且可被配置为 8/16/32/48/64-bit 的输入输出通道&#xff0c;支持频率从 10 kHz 到 40 MHz 的 BCK 时钟。当 1 个或 2 个 被配置为主机模式…