首页 > 编程语言 >C#联合halcon实现直线查找

C#联合halcon实现直线查找

时间:2024-12-09 16:44:21浏览次数:4  
标签:metrologyHandle C# double HTuple halcon column 查找 new row

一、前言

C#之Winform + Halcon实现图像直线查找功能
1、创建计量模型 HMetrologyModel
2、添加计量对象到线测量
3、设置计量对象参数
4、设置查找参数:边缘阈值、边缘选择、过度方式
5、显示测量点

二、运行结果

三、代码

	double r1 = 50.00, c1 = 300.0;
	double r2 = 150.0, c2 = 300.0;
	double measureLength1 = 10, measureLength2 = 10;
	double measureSigma   = 1,  measureThreshold = 10;
	HTuple genParamName = new HTuple();
	HTuple genParamValue = new HTuple();
 	//*创建计量模型
 	HMetrologyModel metrologyHandle =new HMetrologyModel();
	//*添加计量对象到线测量()
 	metrologyHandle.AddMetrologyObjectLineMeasure(r1,c1,r2,c2, 
 	measureLength1, measureLength2, measureSigma, measureThreshold,
	genParamName, genParamValue);
 	//*设置计量对象参数
 	metrologyHandle.SetMetrologyObjectParam( 0, "measure_length1",100);
 	metrologyHandle.SetMetrologyObjectParam(0, "measure_length2",20);
 	metrologyHandle.SetMetrologyObjectParam(0, "measure_distance",10);
 	//*边缘阈值
 	metrologyHandle.SetMetrologyObjectParam(0, "measure_threshold",10);
 	//*边缘选择
 	metrologyHandle.SetMetrologyObjectParam(0, "measure_select","first");
 	//*过度方式
	metrologyHandle.SetMetrologyObjectParam(0, "measure_transition","positive");
	//ho_image为自己创建的HImage对象实例 HImage ho_image = new HImage()
	//
 	metrologyHandle.ApplyMetrologyModel(ho_image);
 	//*显示测量点
 	HXLDCont contours = new HXLDCont();
 	contours = metrologyHandle.GetMetrologyObjectMeasures(0, "all", out HTuple row, out HTuple column);
 	HXLDCont xldCont = new HXLDCont();
 	xldCont.GenCrossContourXld(row, column, 10, 0.785398);
 	HTuple result = metrologyHandle.GetMetrologyObjectResult(0, "all", "result_type", 
                new HTuple(new string[] { "row_begin", "column_begin", "row_end", "column_end" }));
 	//*获得测量直线
 	double row_begin = result[0];
 	double column_begin = result[1];
 	double row_end = result[2];
 	double column_end = result[3];
 	HXLDCont xldLine = new HXLDCont();
 	xldLine.GenContourPolygonXld(
 	new HTuple(new double[] { row_begin, row_end }),
 	new HTuple(new double[] { column_begin, column_end })
	 );
 	//设置颜色并显示
 	//自己封装的方法
 	hWTool.DispObj(contours,"blue");//测量的直线范围
 	hWTool.DispObj(xldLine, "blue");//测量出来的直线
 	hWTool.DispObj(xldCont, "green");//测量出来的点
 	//hWindowControl1为HWindowControl对象实例
 	//hWindowControl1.HalconWindow.SetColor("blue");
 	//hWindowControl1.HalconWindow.DispObj(xldLine);//测量出来的直线
 	//hWindowControl1.HalconWindow.SetColor("red");
 	//hWindowControl1.HalconWindow.DispObj(contours);//测量的直线范围
 	// hWindowControl1.HalconWindow.SetColor("green");
 	//hWindowControl1.HalconWindow.DispObj(xldCont);//测量出来的点


标签:metrologyHandle,C#,double,HTuple,halcon,column,查找,new,row
From: https://www.cnblogs.com/whojie/p/18594913

相关文章

  • c#通过串口读取到的分段json提取方法
    privateList<byte>receivedBuffer=newList<byte>();privatevoidbtnConnect_Click(objectsender,EventArgse){this.btnConnect.Enabled=false;this.btnDisconnect.Enabled=true;_deviceAdapter=newComDeviceAdapter(this......
  • linux安装和使用Rancher
    linux安装和使用RancherRancher介绍请看如下博客arm架构安装Rancher并导入k8s集群解决Error:noobjectspassedtoapply华为云arm架构安装k8s(kubernetes)")linux下安装RancherRancher部署======监控k8s集群状态等,比Dashboard插件强大======提前安装好K8S在master上执行......
  • 白骑士的JavaScript教学生态系统篇之现代前端开发流程 5.3.4 持续集成与部署(CI/CD)
            在现代软件开发中,持续集成与持续部署(CI/CD)已经成为提高开发效率、确保软件质量的关键流程。CI/CD不仅能够自动化代码的构建、测试和部署,还能帮助开发团队快速地将新功能和修复发布到生产环境。本文将深入探讨CI/CD的概念、优势、常用工具以及如何在JavaScript......
  • rsync教程
    一、简介rsync是一个常用的Linux应用程序,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp和mv命令。它名称里面的r指的是remote,rsync其实就是"远程同步"(remotesync)的......
  • [ARC189B] Minimize Sum 题解
    场上被创死了。思路考虑一次操作会造成什么影响。加入操作的是:\[x_1,x_2,x_3,x_4\]它们会变成:\[x_1,x_1+x_4-x_3,x_1+x_4-x_2,x_4\]发现没有什么规律。考虑它们的差分序列:\[x_1,x_4-x_3,x_3-x_2,x_2-x_1\]改变为交换\(2,4\)的差分。那么修改就变成很简单的形式了。......
  • MSI安装包制作工具 Advanced Installer v21.9 便携版
    这款PC端的软件集成了打包、配置和部署功能,界面简洁,功能全面。即使你是安装脚本的新手,也能轻松上手,快速制作符合WindowsInstaller标准的MSI和MSP安装包。该版本已注册,可以使用全部功能。使用说明:1、将压缩文件解压到固定位置,不要随意移动。2、解压后,双击start_AInstaller......
  • JavaScript 写css的内联样式
    一、使用style属性-直接设置单个CSS属性//获取元素varelement=document.getElementById("myElement");//设置样式element.style.color="red";element.style.backgroundColor="blue";element.style.fontSize="20px";二、使用cssText属性-一次性设......
  • Mitel MiCollab企业协作平台存在任意文件读取漏洞(CVE-2024-41713)
    免责声明:本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在使用本......
  • DockerUI存在默认口令漏洞
    免责声明:本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在使用本......
  • Scala隐式转换:提高代码灵活性的利器
    引言Scala的隐式转换是一种允许开发者在特定情境下自动转换类型的特性,它极大地提高了代码的灵活性和可读性。本文将全面介绍Scala隐式转换的概念、应用场景、代码示例、注意事项以及最佳实践。隐式转换基础在Scala中,隐式转换通过implicit关键字定义,可以是隐式值、隐式类或者......