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

WPF引导定位软件-目标(基准)位置确定-线线交点算法

WPF引导定位软件-目标(基准)位置确定-线线交点算法

记录在做模板时候,找线工具的位置,

然后模板匹配之后,跟着原来的一起移动


1.弹出找线工具2.获取找线工具数据3.保存找线工具坐标4.设置直线测量参数5.直线拟合6.直线测量结果显示
模板匹配跟随流程:1.保存模板区域的中心点和02.获取模板匹配后的点和角度3.生成仿射矩阵4.对找线工具进行仿射变换

一 UI设计

<TabItemHeader="线线交点"><Grid><Grid.ColumnDefinitions><ColumnDefinitionWidth="2*"/><ColumnDefinitionWidth="6*"/><ColumnDefinitionWidth="2*"/></Grid.ColumnDefinitions><extoolkit:PropertyGridName="propertyGrid_Lines"Background="AliceBlue"Grid.Column="0"></extoolkit:PropertyGrid><WindowsFormsHost Grid.Column="1"><halconTool:HWindow_Finalx:Name="hWindow_Final_Lines"/></WindowsFormsHost><StackPanel Grid.Column="2"><Buttonx:Name="btn_LoadImage2"Content="加载图像"Margin="10"Cursor="Hand"></Button><Buttonx:Name="btn_SearchRegion2"Content="搜索区域"Margin="10"Cursor="Hand"></Button><Buttonx:Name="btn_DrawModel2"Content="绘制模板"Margin="10"Cursor="Hand"></Button><Buttonx:Name="btn_SaveModel2"Content="保存模板"Margin="10"Cursor="Hand"></Button><Buttonx:Name="btn_ModelMatch2"Content="模板匹配"Margin="10"Cursor="Hand"></Button><Buttonx:Name="btn_FindLine1"Content="找线1"Margin="10"Cursor="Hand"></Button><Buttonx:Name="btn_FindLine2"Content="找线2"Margin="10"Cursor="Hand"></Button><Buttonx:Name="btn_SaveParams2"Content="保存参数"Margin="10"Cursor="Hand"></Button></StackPanel></Grid></TabItem>

二 FitLinesModel

/// <summary>/// 拟合直线模型/// </summary>publicclassFitLinesModel{[Category("创建模板参数"),Description("金字塔层数*[定义数组][开始层和结束层][可以达到多层金字塔搜索]")]publicintnumLevels{get;set;}=5;//金字塔层数*[定义数组][开始层和结束层][可以达到多层金字塔搜索][Category("创建模板参数"),Description("开始角度//最小角度*")]publicdoubleangleStart{get;set;}=-3.14;//开始角度//最小角度*[Category("创建模板参数"),Description("角度范围//最大角度*")]publicdoubleangleExtent{get;set;}=6.28;//角度范围//最大角度*[Category("创建模板参数"),Description("角度步长//设定值越小,程序耗时越长//auto")]publicstringangleStep{get;set;}="auto";//角度步长//设定值越小,程序耗时越长//auto[Category("创建模板参数"),Description("最小缩放//最小比例*")]publicdoublescaleMin{get;set;}=0.7;//最小缩放//最小比例*[Category("创建模板参数"),Description("最大缩放//最大比例*")]publicdoublescaleMax{get;set;}=1.3;//最大缩放//最大比例*[Category("创建模板参数"),Description("缩放步长")]publicstringscaleStep{get;set;}="auto";//缩放步长[Category("创建模板参数"),Description("优化方式")]publicstringoptimization{get;set;}="auto";//优化方式[Category("创建模板参数"),Description("极性控制*")]publicstringmetric{get;set;}="use_polarity";//极性控制*//黑白对比度一致//使用极性use_polarity//黑白对比度不一致//忽略极性ignore_global_polarity//黑白对比局部不一致//忽略局部极性ignore_local_polarity[Category("创建模板参数"),Description("对比度*")]publicintcontrast{get;set;}=30;//对比度*[Category("创建模板参数"),Description("最小灰度值*//auto")]publicstringminContrast{get;set;}="auto";//最小灰度值*//auto[Category("查询模板参数"),Description("开始角度//最小角度*")]publicdoubleangleStart_F{get;set;}=-3.14;//开始角度//最小角度*[Category("查询模板参数"),Description("角度范围//最大角度*")]publicdoubleangleExtent_F{get;set;}=6.28;//角度范围//最大角度*[Category("查询模板参数"),Description("最小缩放//最小比例*")]publicdoublescaleMin_F{get;set;}=0.7;//最小缩放//最小比例*[Category("查询模板参数"),Description("最大缩放//最大比例*")]publicdoublescaleMax_F{get;set;}=1.3;//最大缩放//最大比例*[Category("查询模板参数"),Description("得分")]publicdoubleminScore_F{get;set;}=0.3;//得分[Category("查询模板参数"),Description("匹配个数")]publicintnumMatches_F{get;set;}=1;//匹配个数[Category("查询模板参数"),Description("最大重叠")]publicdoublemaxOverlap_F{get;set;}=0.5;//最大重叠[Category("查询模板参数"),Description("是否亚像素//一般不选择//least_squares")]publicstringsubPixel_F{get;set;}="true";//是否亚像素//一般不选择//least_squares[Category("查询模板参数"),Description("金字塔层数*")]publicintnumLevels_F{get;set;}=5;//金字塔层数*[Category("查询模板参数"),Description("贪婪度//值越小越容易匹配")]publicdoublegreediness_F{get;set;}=0.5;//贪婪度//值越小越容易匹配[Category("查询模板参数"),Description("")]publicdoublerow{get;set;}=0;[Category("查询模板参数"),Description("")]publicdoublecolumn{get;set;}=0;[Category("查询模板参数"),Description("")]publicdoubleangle{get;set;}=0;[Category("查询模板参数"),Description("")]publicdoublescale{get;set;}=0;[Category("查询模板参数"),Description("")]publicdoublescore{get;set;}=0;[Category("拟合直线参数"),Description("半长")]publicdoubleLength1{get;set;}=15;[Category("拟合直线参数"),Description("半宽")]publicdoubleLength2{get;set;}=5;[Category("拟合直线参数"),Description("过度阈值")]publicdoubleThreshold{get;set;}=10;[Category("拟合直线参数"),Description("间隔")]publicdoubleMeasureDistance{get;set;}=12;[Category("拟合直线参数"),Description("由黑到白,还是由白到黑,还是都可以")]publicstringTransition{get;set;}="all";[Category("拟合直线参数"),Description("第几个点")]publicstringSelect{get;set;}="first";}
http://www.jsqmd.com/news/414954/

相关文章:

  • checkbox是否选择触发多行文本显示隐藏
  • 传魅族手机3月正式退市,李楠谈2年前重振失败;刘强东投50亿造游艇:像汽车一样走进千家万户;苹果手机深夜自动外拨电话引热议|极客头条
  • 2026年近红外光谱仪分析仪厂家推荐:紫外可见近红外光谱仪/红外吸收微量水在线光谱仪/含水量在线光谱仪/在线式近红外光谱仪专业供应商精选 - 品牌推荐官
  • 照着用就行:8个降AI率网站测评推荐,自考降AI率必备工具
  • 恢复三星已删除通话记录的 3 种有效方法
  • 2026年万和热水器24小时维修厂家推荐:小松鼠壁挂炉官方维修/庆东纳碧安热水器官方维修/林内热水器官方维修/选择指南 - 优质品牌商家
  • hiveserver2配置prometheus因使用mr引擎报错解决
  • 2026年能率热水器维修24小时厂家最新推荐:瑞美热水器24小时维修/能率壁挂炉24小时维修/选择指南 - 优质品牌商家
  • 2026年太原装修/装潢/全屋整装/新房装修/旧房翻新公司竞争格局深度分析报告 - 2026年企业推荐榜
  • 多模态大模型微调框架之transformers
  • 2026主流CRM选型攻略:14款系统全解析,适配不同企业需求
  • 企业劳务派遣怎么选?五大服务商适配国企+项目制派遣 - 包罗万闻
  • 五大实力劳务派遣服务商,赋能高端人才/蓝领/白领全品类派遣 - 包罗万闻
  • JSON 规范与 RFC 标准速查
  • 2026年2月太原装修/装潢/全屋整装/新房装修/旧房翻新公司竞争格局深度分析报告:五强争霸与差异化突围 - 2026年企业推荐榜
  • AI时代,渗透测试工作将如何开展?
  • 专业化健康管理实训室,助力康养人才精准培育
  • 计算机毕业设计之基于JavaWeb的汽配销售管理系统
  • Bun 运行时就完成所有得事情,类似于 Node.js - 广东靓仔
  • vue+nodejs+ElementUi的课程作业资源管理系统 电子教务管理系统
  • 2026贵阳养老院/敬老院/护理院哪家好?TOP5榜单:康祥养老院领衔,五大优质机构温暖守护银发人生 - 深度智识库
  • 多模态大模型微调框架之unsloth
  • 计算机毕业设计之jsp舞台服装出租管理系统
  • 2026年深圳汽车租赁服务推荐:麻花租车领衔,豪车/商务/私家车/跨境汽车租赁全场景出行解决方案 - 品牌推荐官
  • 2026年全国涂塑钢管哪家好?可靠优质 覆盖全国多区域适配需求 - 深度智识库
  • 2026年2月蒸汽锅炉厂家推荐,应急备用与持续供汽实力厂家 - 品牌鉴赏师
  • 2026年(最新)耐磨瓷砖十大品牌核心工艺与厂家推荐:从4大核心维度拆解十大品牌靠谱榜单 - 野榜精选
  • 2026劳务派遣公司优选,适配服务业/制造业全场景派遣需求 - 包罗万闻
  • 【车辆】两级式车载充电机单相Boost-PFC+全桥LLC谐振变换器闭环PSIM仿真
  • [ARC212C] ABS Ball题解