当前位置:首页 > 后端开发 > 正文内容

C#联合halcon完成直线查找

邻居的猫1个月前 (12-09)后端开发1471

一、前语

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);//丈量出来的点


扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=141

分享给朋友:

“C#联合halcon完成直线查找” 的相关文章

php开源系统,优势、应用与未来趋势

php开源系统,优势、应用与未来趋势

PHP开源系统有很多种,涵盖了不同的应用砛n2. PbootCMS: 特点:全新内核,永久开源免费,适合企业网站开发建设。 用途:高效、简洁、强大的CMS系统。 3. ThinkSAAS: 特点:基于PHP MySQL,支持Apache和Nginx,支持php7版本。...

php安全,构建安全可靠的Web应用

php安全,构建安全可靠的Web应用

1. 输入验证:确保所有用户输入都经过验证和清理,以防止SQL注入、跨站脚本(XSS)等攻击。2. 数据库安全:使用预处理语句和参数化查询来防止SQL注入攻击。确保数据库用户具有最小权限,并定期更新数据库软件以修复已知漏洞。3. 文件上传:限制文件类型和大小,验证文件内容,并确保上传的文件不会覆盖现...

go反编译, Android应用软件游戏汉化概述

go反编译, Android应用软件游戏汉化概述

Go语言的反编译通常是指将Go语言的编译后的二进制文件转换回Go源代码的过程。Go语言的二进制文件并不包含原始源代码的足够信息,这使得完全准确的反编译变得非常困难。尽管如此,还是有一些工具和技术可以尝试从Go的二进制文件中提取出有用的信息。 常用的Go反编译工具1. Gobuster:一个用于暴力破...

php常量定义, 常量的定义

php常量定义, 常量的定义

在PHP中,常量是一个简单的标识符,它用于存储不会改变的数据。与变量不同,一旦常量被定义,就不能再被改变或重新定义。常量可以在脚本执行期间一直存在。 定义常量在PHP中,定义常量使用`define`函数。语法如下:```phpdefine;``` `CONSTANT_NAME`:必选参数,常量的名称...

rust单机,Rust语言在单机游戏开发中的应用与优势

rust单机,Rust语言在单机游戏开发中的应用与优势

Rust语言在单机游戏开发中的应用与优势随着游戏行业的不断发展,单机游戏开发对性能和稳定性的要求越来越高。Rust语言作为一种新兴的编程语言,凭借其内存安全、高性能和并发性等特性,逐渐成为单机游戏开发的热门选择。本文将探讨Rust语言在单机游戏开发中的应用与优势。一、Rust语言简介Rust是由Mo...

r语言下载,R语言下载与安装指南

r语言下载,R语言下载与安装指南

你可以通过以下几种方式下载R语言:1. 官方下载页面: 访问R语言的官方网站 ,点击“Download R”按钮,选择适合你操作系统的版本进行下载。2. 使用CRAN镜像: CRAN(Comprehensive R Archive Network)是一个全球性的网络,提供R软件和包的下载...