C++ 课程设计,图片元素的获取,拟合椭圆

WX: help-assignment

C++ 课程设计,图片元素的获取,拟合椭圆

代码实现步骤:

  1. 读取.jpg 图片(259219443),将图片中的x∈(700,1450)y∈(1,1944)的像素值置为0;

  2. 提取图片的r、g、b 通道,按照(1r-0.6g-0.3*b)对图像中的每个像素值进行重置;

  3. 二值化图片,二值化阈值人为可调(暂定0.2);

  4. 提取二值化后灰度值为1 的所有白点的横纵坐标,将所有坐标保存到数组A 中;

  5. 利用4 中的所有点,拟合椭圆,得到椭圆参数x0,y0,a,b,phi,求出拟合椭圆的两焦点坐标;

  6. 计算4 中所有[(点到椭圆两焦点距离之和)-2a)]的值d;定义可变阈值u=15,找出满足d>u和d<-u 的所有点,将这些满足条件的点的横纵坐标和d 值保存到数组B1(满足d>u)和B2(满足d<-u);

  7. 再将6 中满足条件的点B1、B2 从4 的数组A 中删除,利用剩下的点再拟合一次椭圆,定义角度deg=2(°),按照极坐标将拟合椭圆的(0,deg+50)、(125-eg,235+deg)、(310-deg,360)三个范围内的圆弧,以点的形式保存到数组C 中,定义变量-总点数N=1000 控制点的密度;

  8. 按照极坐标,根据7 拟合椭圆的圆心将360°圆周均分为36 个区域(如下图所示),根据B1、B2 点坐标与7 拟合椭圆圆心的相对位置分别对B1、B2 中的点进行分区,将坐标和
    d 值保存到两个数组D1、D2 中;
    在这里插入图片描述

  9. 将36 个区域的第1 个区域移动到第36 个区域,其他区域前移一位,然后将相邻的两区的点坐标和d 值合并,将18 个区的结果保存到数组E1、E2 中;

  10. 找到每个区域中d 值的最大值(舍弃其他坐标和d 值),将最大d 值对应的点坐标保存到数组F1、F2 中;

  11. 找到F1、F2 数组中的非零点,在椭圆点的数组C 中,找到每个F1、F2 数组中非零点的最近点,将其坐标保存到数组G1、G2 中;
    定义变量
    fx=1.225864026416392e+03、
    fy=1.222035920702631e+03、
    cx=1.262867786018872e+03、
    cy=9.965525461409534e+02、
    数组
    distor=[-0.062350435204761,0.084767499824599,-2.758193383474388e-04,0.001373886815629,
    -0.031851981006323]、
    k1=-0.062350435204761、
    k2=0.084767499824599、
    数组
    p=[-3.216993173751905e-26,-3.160339026653889e-26,1.091798484384938e-26,9.32639128826
    0196e-28,-7.223471162545130e-27,2.253257582218905e-27,-1.091261397869860e-24,2.930349
    684261594e-25,4.866930211908356e-26,-9.193306331385255e-24]、
    dx = 1.4e-03、
    dy = 1.4e-03;

  12. 将G1、G2 和F1、F2 中的横坐标-cx(=ximg),纵坐标-cy(=yimg);将上述横纵坐标和11 中的参数代入下列方程组,得到xc,yc,zc,保存到数组M1、M2 和N1、N2 中;
    在这里插入图片描述

  13. 计算数组M1(点)和数组N1 对应点(最近点)的空间距离,将空间距离每个空间距离×sin(26.5°),将距离不为0 的值保存到数组DIST_1、DIST_2 中;

WX: help-assignment

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

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

相关文章

攻略:大学生三下乡投稿媒体网站和快速方法

作为当代大学生,不仅需要学习和掌握知识,更需要将所学知识运用到实践中,参与各种社会实践活动。其中,“三下乡”活动就是一个非常有意义的社会实践活动。三下乡社会实践活动新闻稿投稿网站有哪些?有哪些方式可以快速投稿呢&#xff1f;今天小编给大家一次讲个明白。 三下乡新…

【Qt】界面定制艺术:光标(cursor)、字体(font)、提示(toolTip)、焦点(focusPolicy)与样式表(styleSheet)的深度探索

文章目录 前言&#xff1a;1. cursor: 设置按钮的光标2. front&#xff1a;设置字体3. toolTip: 鼠标悬停提示4. focusPolicy&#xff1a;设置控件获取到焦点的策略5. styleSheet : 样式表总结&#xff1a; 前言&#xff1a; 在现代软件开发中&#xff0c;用户界面(UI)的设计和…

探索静态住宅IP代理:保障网络安全与隐私的新途径

在数字化时代&#xff0c;互联网已经成为人们日常生活和工作的重要组成部分。然而&#xff0c;网络安全和隐私保护问题也随之而来&#xff0c;成为广大网民关注的焦点。静态住宅IP代理作为一种新兴的网络技术&#xff0c;以其独特的功能和优势&#xff0c;逐渐受到用户的青睐。…

每天五分钟计算机视觉:使用极大值抑制来寻找最优的目标检测对象

本文重点 在目标检测领域,当模型预测出多个候选框(bounding boxes)时,我们需要一种方法来确定哪些候选框最有可能表示真实的目标。由于模型的不完美性和图像中目标的重叠性,往往会有多个候选框对应于同一个目标。此时,极大值抑制(Non-Maximum Suppression,NMS)技术就…

完美解决Windows10下-更换JDK环境变量后,在cmd下执行仍java -version然出现原来版本的JDK的问题

一、错误场景预演 本人欲将 JDK 1.8 通过安装包的方式升级为 JDK 22。 本地旧版本&#xff1a;1.8.0_221预升级版本&#xff1a;22.0.1 1.1、查看本地旧版本 在配置环境变量之前&#xff0c;首先我们要明确&#xff0c;本地存在旧版本&#xff0c;如果本地没有 Java&#x…

Vue按照顺序实现多级弹窗(附Demo)

目录 前言1. 单个弹窗2. 多级弹窗 前言 强化各个知识点&#xff0c;以实战融合&#xff0c;以下两个Demo从实战提取 1. 单个弹窗 部署按钮框以及确定的方法即可 截图如下所示&#xff1a; 以下Demo整体逻辑如下&#xff1a; 点击“生成周月计划”按钮会触发showWeekPlanDia…

小众行业风口:Q1季度擦窗机器人行业线上市场销售数据分析

今天给大家分享一个2024年的小众行业增长风口——擦窗机器人。 作为家居自动化里的重要一员&#xff0c;擦窗机器人可以简称为擦窗神器&#xff0c;是为了解决大户型家庭的外窗清洁痛点而存在。而目前&#xff0c;擦窗机器人行业正在走向成熟&#xff0c;且市场需求量居高不下…

OSPF虚链路

原理概述 通常情况下&#xff0c;一个OSPF网络的每个非骨干区域都必须与骨干区域通过ABR路由器直接连接&#xff0c;非骨干区域之间的通信都需要通过骨干区域进行中转。但在现实中&#xff0c;可能会因为各种条件限制&#xff0c;导致非骨干区域和骨干区域无法直接连接&#x…

探索智慧推理:线上剧本杀小程序引领新潮流

随着科技的飞速发展&#xff0c;线上剧本杀小程序作为一种新兴的数字娱乐形式&#xff0c;正以其独特的魅力引领着新潮流&#xff0c;并在内容创造上展现出无限的潜力。这种融合了角色扮演、推理解谜和社交互动的游戏模式&#xff0c;不仅为用户带来了沉浸式的体验&#xff0c;…

泥水位监测站的应用场景

TH-SW2泥水位监测站的应用场景相当广泛&#xff0c;包括但不限于以下几种情况&#xff1a; 水源地保护&#xff1a;它可以监测水源地的水质及水位变化&#xff0c;为水源地的保护提供实时数据支持&#xff0c;防止水源污染和过度开采。水库管理&#xff1a;在水库中&#xff0…

求职网络安全:这个领域的就业机会正在增长

随着大安全时代的到来&#xff0c;网络安全已经从虚拟空间延伸到现实空间。当今网络战愈演愈烈&#xff0c;网络军备赛即将来临。网络空间领域的战争归根到底还是人才的竞争。面对新形势,建立高效的网络安全人才培养体系对中国信息安全产业发展和保证国家安全来讲都至关重要! 目…

简单的表单初始密码验证的实现

目录 简单示例&#xff1a;表单初始密码验证 1.1准备工作(图1&#xff09; 1.2 index部分 1.3 css部分 1.3.1先把css部分链接到index.html中&#xff0c;注意链接的地址。 1.3.2添加样式 1.4 JS部分 1.4.1 先把js部分链接到index.html中&am…