首页 > 其他分享 >Halcon——矩阵/Matrix

Halcon——矩阵/Matrix

时间:2024-03-01 16:45:40浏览次数:36  
标签:set matrix create 矩阵 dev Halcon Size Matrix

1.矩阵创建

create_matrix — Create a matrix. 创建一个矩阵

create_matrix( : : Rows, Columns, Value : MatrixID)

A.创建一个3*3单位矩阵  

  create_matrix(3,3,'iidentity',MatrixID)

B.创建一个值均为7的3*3方阵

  create_matrix(3,3,7,MatrixID)

 

C.创建一个3*4矩阵

  create_matrix(3,4,[3,7,1],MatrixID)

 

D.创建一个#*3矩阵

  create_matrix(3,4,[3,1,-2,-5,7,2,-9,-4,1],MatrixID)

2.矩阵操作

2.1  set_sub_matrix — Set a sub-matrix of a matrix. 设置矩阵的子矩阵

set_sub_matrix( : : MatrixID, MatrixSubID, Row, Column : )

城实现过程:

2.2 solve_matrix — Compute the solution of a system of equations    计算方程组的解(计算线性方程组或线性最小二乘问题的解)

* This example programs shows how to use matrices in HALCON to
* solve a system of equations.
* The example generates a sequence of random points and fits
* a quadratic function to these points.
* 此示例程序展示了如何使用 HALCON 中的矩阵来
* 求解方程组。
* 该示例生成一系列随机点并拟合
* 这些点的二次函数。
dev_update_off ()
dev_close_window ()
Size := 500
dev_open_window (0, 0, Size, Size, 'white', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_part (0, 0, Size - 1, Size - 1)
* 
* Create a set of random points which lie approximately on
* a second order curve
* 创建一组随机点,这些点大约位于
* 二阶曲线
* 
X := [25:50:Size]
Y := 15 + 0.4 * X + 0.001 * X * X
* Y := Y + 40 * rand(|Y|)
* 
* Show the point set
* 
gen_cross_contour_xld (Cross, Size - Y, X, 15, 0.785398)
dev_set_color ('blue')
dev_set_line_width (3)
dev_display (Cross)
disp_message (WindowHandle, 'Input point sequence', 'window', 70, 25, 'blue', 'false')
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
* 
* Now fit these points to a quadratic function of the form
* 
* f(x) = a*x^2 + b*x + c
* 
* This can be achieved by solving the system of equations
* 
* Ax = B
* 
* where each line in A consists of [X^2, X, 1],
* and each line of B consist of the corresponding Y value
* 
* If this system of equations is solved for x, x will contain
* the parameters of the quadratic function:
* 
* x = [a, b, c]

**
* 现在将这些点拟合为形式的二次函数
*
* f(x) = a*x^2 + b*x + c
*
* 这可以通过求解方程组来实现
*
* Ax = B
*
* 其中 A 中的每一行由 [X^2, X, 1] 组成,
* B 的每一行由相应的 Y 值组成
*
* 如果求解 x 的方程组,则 x 将包含
* 二次函数的参数:
*
* x = [a, b, c]
*
* 
create_matrix (|X|, 3, 1.0, MatrixA)
create_matrix (|X|, 1, X, MatrixACol1)
create_matrix (|X|, 1, X * X, MatrixACol0)
set_sub_matrix (MatrixA, MatrixACol1, 0, 1)
set_sub_matrix (MatrixA, MatrixACol0, 0, 0)
* 
create_matrix (|X|, 1, Y, MatrixB)
solve_matrix (MatrixA, 'general', 0, MatrixB, MatrixX)
* 
* Plot the approximated quadratic function
*绘制近似二次函数
* 
Sequence := [0:1200]
get_value_matrix (MatrixX, 0, 0, A)
get_value_matrix (MatrixX, 1, 0, B)
get_value_matrix (MatrixX, 2, 0, C)
Distances := A * Sequence * Sequence + B * Sequence + C
gen_contour_polygon_xld (Contour, Size - Distances, Sequence)
dev_set_color ('forest green')
dev_display (Contour)
Message := 'Approximated quadratic function'
Message[1] := 'f(x) = ' + A$'.2' + '*x^2 + ' + B$'.2' + '*x + ' + C$'.2' + ''
disp_message (WindowHandle, Message, 'window', 100, 25, 'forest green', 'false')
disp_end_of_program_message (WindowHandle, 'black', 'true')

 2.3 mult_element_matrix — Multiply matrices element-by-element.   计算矩阵的哈达玛积(基本积)

         矩阵逐元素相乘

  

 

2.4 add_matrix_mod — Add two matrices.     

  矩阵逐元素相加

2.5 sub_matrix — Subtract two matrices.

  矩阵逐元素相减

  

2.6 mult_matrix — Multiply two matrices.   两个矩阵相乘

  mult_matrix( : : MatrixAID, MatrixBID, MultType : MatrixMultID) 

  ********MultType ='AB'时  

    

********MultType ='ATB'时

 

********MultType ='ABT'时 

********MultType ='ATBT'时 

 

2.7 invert_matrix — Invert a matrix.     获取矩阵逆

 

 

 

2.8  scale_matrix — Scale a matrix.

 2.9  pow_scalar_element_matrix — Compute the power functions of the elements of a matrix.

 2.10  mean_matrix — Returns the elementwise mean of a matrix.  返回矩阵的元素均值。

    mean_matrix( : : MatrixID, MeanType : MatrixMeanID)

    

 

 

 

2.11  sqrt_matrix_mod — Compute the square root values of the elements of a matrix. 计算矩阵元素的平方根值

 2.12  get_full_matrix — Return all values of a matrix.   返回矩阵的所有值

 2.13  set_value_matrix — Set one or more elements of a matrix.

 

标签:set,matrix,create,矩阵,dev,Halcon,Size,Matrix
From: https://www.cnblogs.com/echo-efun/p/18046546

相关文章

  • 正定矩阵&负定矩阵&三对角矩阵&上三角矩阵&下三角矩阵
    1.三对角矩阵tridiagonalmatrix 2.上三角矩阵  uppertriangularmatrix 3.下三角矩阵 lowertriangularmatrix 4.正定矩阵 positivedefinitematrix 5.负定矩阵negativedefinitematrix ......
  • 统计子矩阵
    一、题目描述P8783[蓝桥杯2022省B]统计子矩阵二、算法简析2.1二维前缀和我们知道,只要确定了矩阵的左上顶点和右下顶点,一个矩阵就被固定了。因此,我们可以遍历这两个顶点,达到遍历所有子矩阵的目的,复杂度会达到\(O(N^2*M^2)\)。确定了子矩阵,就要判断子矩阵的值是否不大于......
  • Linux系统 - 使用 cmatrix 实现数字雨效果
    1.下载cmatrix源码包。可以在终端中使用wget命令从源码包提供的链接下载,命令如下:wget https://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a.tar.gz2.安装ncurses支持包。在终端中使用yum命令安装ncurses,命令如下:yuminstall-yncurses3.......
  • R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化
    全文链接:https://tecdat.cn/?p=33760原文出处:拓端数据部落公众号概述:众所周知,心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用,尤其在医疗行业中越来越受欢迎。机器......
  • 矩阵树定理
    记结论如果有一条\((i,j)\)的边无向图生成树计数设\(D\)为度数矩阵,\(A\)为邻接矩阵。那么令\(L=D-A\)。则生成树为\(L\)去掉任意一行一列的\(Det(L)\)。mat[i][i]++,mat[j][j]++,mat[i][j]--,mat[j][i]--有向图外向树计数设\(D\)为入度矩阵,\(A\)为邻接矩......
  • 矩阵乘法与矩阵快速幂
    矩阵乘法与矩阵快速幂1矩阵乘法1.1定义对于两个矩阵$A,B$,其中$A$大小为$n\timesm$,$B$大小为$m\timesp$,则这两个矩阵可以做乘法,得到的矩阵$C$的大小为$n\timesp$。例如:$$A=\begin{bmatrix}a_{11}&a_{12}&a_{13}\a_{21}&a_{22}&a_{23}\end{bmatrix}......
  • Halcon无法连接Basler相机及图像不稳定的解决办法
      情况一:出现检测图片接口可以检测到GigE接口,但连接时显示不能初始化。解决办法:这种首先确保相机网口连接稳定,并在Basler的自带驱动软件Pylon中将TriggerMode改为Off(Halcon中也可在参数中更改)。然后打开——控制版面——系统和安全——WindowsDefender防......
  • Codeforces 1451F Nullify The Matrix
    因为保证了这个路径必须是向下和向右,就可以考虑每一条\(i+j=x\)的斜线上的点,因为一条路径经过的点对应的\(i+j\)一定是每次\(+1\)的。考虑到因为对于同一条直线,每个点是独立的,因为一条路径至多经过这条直线上的一个点。于是可以考虑用\(\text{Nim}\)的思想把这条......
  • C# WPF Halcon HDevEngine混合编程
    C#WPFHalconHDevEngine混合编程WPF+Halcon引用halcondotnet.dll和hdevenginedotnet.dllXAML中导入命名空间xmlns:halcon=“clr-namespace:HalconDotNet;assembly=halcondotnet”。输入xmlns后,tab选择halcon,然后再tab就自动输入)WPF布局,创建HWindowControlWPF窗口2.HDevEn......
  • LoRA 微调和低秩矩阵
    LoRA(Low-RankAdaptation)是一种技术,旨在有效调整大型语言模型,以适应特定任务,而无需重新训练整个模型。在论文《LORA:LOW-RANKADAPTATIONOFLARGELANGUAGEMODELS》(https://arxiv.org/abs/2106.09685)中给出了具体方法:通过对模型中的参数进行低秩更新,来实现对大型预训练语言模......