当前位置: 首页 > news >正文

【32】C++实战篇—— m行n列的坐标点,求每行相邻点X差值dX,每列相邻点y差值dY,并以矩阵形式左端对齐

文章目录

  • 1 代码实现
  • 2 示例验证

m行n列的坐标点,求每行相邻点X差值dX,每列相邻点y差值dY,并以矩阵形式左端对齐

例如:
vector< cv::Point2f>Center中存储了3行3列的9个点,现在求每行相邻点X差值,那么每行有3-1个差值,一共有3行,就以32的形式输出;每列相邻点y差值,那么每列有3-1个差值,一共有3列,就以23的形式输出;

1 代码实现

//输出3*3点阵坐标的行距、列距
int PutRowandColSpace(vector< cv::Point2f> Center)
{// 确保 points 包含了9个点if (Center.size() != 9) {std::cerr << "Error: The number of points should be 9." << std::endl;return -1; // 或者执行错误处理}// 计算每行相邻点的X差值并输出cout << "每行相邻点的X差值:" << endl;for (int i = 0; i < 3; ++i) {for (int j = 0; j < 2; ++j) {float dx = Center[i * 3 + j + 1].x - Center[i * 3 + j].x;cout << setw(5) << dx;}cout << endl;}// 计算每列相邻点的Y差值并输出cout << "每列相邻点的Y差值:" << endl;for (int i = 0; i < 2; ++i) {for (int j = 0; j < 3; ++j) {float dy = Center[(i + 1) * 3 + j].y - Center[i * 3 + j].y;cout << setw(5) << dy;}cout << endl;}return 0;
}

对于cv::Point2f Center[9]此方法同样适用,只是改一下入口参数即可

////输出3*3点阵坐标的行距、列距
int PutRowandColSpace2(cv::Point2f Center[9])
{// 计算每行相邻点的X差值并输出cout << "每行相邻点的X差值:" << endl;for (int i = 0; i < 3; ++i) {for (int j = 0; j < 2; ++j) {float dx = Center[i * 3 + j + 1].x - Center[i * 3 + j].x;cout << setw(10) << dx;}cout << endl;}// 计算每列相邻点的Y差值并输出cout << "每列相邻点的Y差值:" << endl;for (int i = 0; i < 2; ++i) {for (int j = 0; j < 3; ++j) {float dy = Center[(i + 1) * 3 + j].y - Center[i * 3 + j].y;cout << setw(10) << dy;}cout << endl;}return 0;
}

2 示例验证

如图,在图片中找到9个点圆点坐标,现在需要检查9个圆心每行相邻点间距,和每列相邻点间距是否是否一致;
在这里插入图片描述
已求得9个圆心

[863.396, 626.316]      [1484.38, 628.124]      [2108.53, 639.256]
[861.457, 751.556]      [1482.73, 756.879]      [2107.33, 766.905]
[861.085, 881.949]      [1481.89, 889.102]      [2104.66, 897.348]  

3*3点阵行距、列距:

每行相邻点的X差值:620.984   624.151621.274   624.599620.803   622.774每列相邻点的Y差值:125.241   128.755   127.649130.393   132.223   130.443
http://www.xdnf.cn/news/1252189.html

相关文章:

  • JAVA--流程控制语句
  • 【VS + Qt】VS2022 Qt 开发中 ui_xx.h 文件编辑报错但编译正常的问题解决
  • 「iOS」————单例与代理
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘caffe’问题
  • 河南萌新联赛2025第四场-河南大学
  • K8S云原生监控方案Prometheus+grafana
  • yolov1-v3原理解析
  • DHCP 服务器与DNS服务器
  • 服务器——“查询不到显卡驱动,且输入nvidia-smi报错”的解决办法
  • 2.6 sync
  • 媒体资产管理系统和OCR文字识别的结合
  • 多端同步新解法:Joplin+cpolar联合通过开源设计实现跨平台无缝协作?
  • 自动驾驶系统的网络安全风险分析
  • 013 HTTP篇
  • Transwell 细胞迁移与侵袭实验:从原理到操作的详细指南
  • Hive【应用 04】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
  • 【android bluetooth 协议分析 03】【蓝牙扫描详解 4】【BR/EDR扫描到设备后如何上报给app侧】
  • Redis中间件(一):Redis相关命令及其原理
  • 企业后端系统常用数据源类型有哪些?
  • 芯片分享【昆泰】——CH7305A -display controller device.
  • Nacos配置中心和数据隔离在idea中的实现
  • Selenium在Pyhton应用
  • 《算法导论》第 8 章—线性时间排序
  • 【C语言】文件操作全解析
  • DevOps时代的知识基座革命:Gitee Wiki如何重构研发协作范式
  • Leetcode题解:739每日温度,用单调栈解决问题!
  • 飞算JavaAI开发平台:重构开发全流程——从需求到工程的智能化跃迁
  • Excel将整列值转换为字符串
  • C语言的数组与字符串练习题1
  • JavaScript DOM 元素节点操作详解