Halcon矩阵(Matrix)算子详解

Halcon矩阵(Matrix)算子详解
创建(Creation)
create_matrix
copy_matrix
repeat_matrix
clear_matrix
访问(Access)
get_diagonal_matrix
set_diagonal_matrix
get_full_matrix
set_full_matrix
get_sub_matrix
set_sub_matrix
get_value_matrix
set_value_matrix
算法(Arithmetic)
分解(Decomposition)
特征值(Eigenvalues)
特性(Features)
determinant_matrix
get_size_matrix
max_matrix
mean_matrix
min_matrix
norm_matrix
sum_matrix
文件操作(File)
write_matrix
read_matrix
serialize_matrix
deserialize_matrix
创建(Creation)
create_matrix
create_matrix ( : : Rows, Columns, Value : MatrixID )
创建一个新矩阵,Rows行,Columns列,Value 数值,MatrixID 矩阵句柄。
如果Value=’identity’,生成单位矩阵:

如果Value=某个值,整个矩阵都填充为这个值:

如果Value包含多个值,且值的数量等于矩阵的秩,则对角线将填充为Value:

如果Value包含多个值,且值的数量等于矩阵中元素的个数(Rows×Columns),则Value逐行填充矩阵:


copy_matrix
copy_matrix ( : : MatrixID : MatrixCopyID )
复制矩阵,MatrixID 源矩阵句柄,MatrixCopyID 复制的矩阵句柄。


repeat_matrix
repeat_matrix ( : : MatrixID, Rows, Columns : MatrixRepeatedID )
重复矩阵,MatrixID源矩阵句柄,Rows重复行,Columns 重复列,MatrixRepeatedID 重复后的矩阵句柄。把源矩阵复制Rows×Columns 次,赋值给MatrixRepeatedID。
Rows=3,Columns =4:

clear_matrix
clear_matrix ( : : MatrixID : )
释放矩阵占用内存。调用算子后,矩阵不再可用,矩阵句柄MatrixID变为非法。
示例:

create_matrix (2, 2, [1,2,3,4], MatrixID)
clear_matrix (MatrixID)
1
2
访问(Access)
get_diagonal_matrix
get_diagonal_matrix ( : : MatrixID, Diagonal : VectorID )
获取对角线元素,并产生新向量,MatrixID源矩阵句柄,Diagonal 对角值,VectorID 新向量矩阵句柄。
如果Diagonal =0,则返回主对角线元素:

如果Diagonal 为正值,则返回右上角元素:

如果Diagonal 为负值,则返回左下角元素:


set_diagonal_matrix
set_diagonal_matrix ( : : MatrixID, VectorID, Diagonal : )
用向量VectorID的值,重写矩阵MatrixID的对角元素,Diagonal 对角值。向量VectorID必须为一行或一列。
如果Diagonal =0,则覆盖主对角元素:

如果VectorID仅包含一个元素,则对角线元素均覆盖为该元素:

如果Diagonal为正值,则覆盖右上角元素:


如果Diagonal为负值,则覆盖左下角元素:

get_full_matrix
get_full_matrix ( : : MatrixID : Values )
返回矩阵的所有元素,MatrixID 矩阵句柄,Values 浮点型元组,逐行保存。

set_full_matrix
set_full_matrix ( : : MatrixID, Values : )
将元组Values 的值赋给矩阵句柄MatrixID。
Note:效果与 create_matrix相同,优势在于重用不再用的矩阵。

get_sub_matrix
get_sub_matrix ( : : MatrixID, Row, Column, RowsSub,ColumnsSub : MatrixSubID )
复制MatrixID的子矩阵,产生新矩阵MatrixSubID,子矩阵由左上角 (Row,Column) 和子矩阵维度(RowsSub, ColumnsSub)决定。
ATT:需要满足条件:0 <= Row <MatrixID矩阵行数,Row + RowsSub <=MatrixID矩阵行数,0 <= Column<MatrixID矩阵列数,Column+ ColumnSub <=MatrixID矩阵列数。


set_sub_matrix
set_sub_matrix ( : : MatrixID, MatrixSubID, Row, Column : )
将矩阵MatrixSubID作为子矩阵重写MatrixID,左上角坐标(Row, Column)。
ATT:需要满足条件:0 <= Row <MatrixID矩阵行数,Row + RowsSub <=MatrixID矩阵行数,0 <= Column<MatrixID矩阵列数,Column+ ColumnSub <=MatrixID矩阵列数。


get_value_matrix
get_value_matrix ( : : MatrixID, Row, Column : Value )
返回矩阵MatrixID中(Row,Column)的元素,赋值为元组Value。


set_value_matrix
set_value_matrix ( : : MatrixID, Row, Column, Value : )
将元组Value 的值赋值给矩阵MatrixID的(Row,Column)。


算法(Arithmetic)
分解(Decomposition)
特征值(Eigenvalues)
特性(Features)
determinant_matrix
determinant_matrix ( : : MatrixID, MatrixType : Value )
计算矩阵的行列式。MatrixID矩阵句柄,MatrixType 矩阵类型,Value 结果。
MatrixType 矩阵类型是可选的:‘general’ 常规, 'symmetric’对称矩阵, ‘positive_definite’ 是正定矩阵, ‘tridiagonal’ 三对角矩阵, ‘upper_triangular’ 上三角矩阵, ‘permuted_upper_triangular’ for permuted upper triangular, ‘lower_triangular’ 下三角矩阵, ‘permuted_lower_triangular’ for permuted lower triangular matrices。
Value = det Matrix.
[补充线性代数知识]:
一个n×n的方阵A的行列式记为det(A)或者|A|,一个2×2矩阵的行列式可表示如下:


一个n×n矩阵的行列式等于其任意行(或列)的元素与对应的代数余子式乘积之和,即

例如:


get_size_matrix
get_size_matrix ( : : MatrixID : Rows, Columns )
获得矩阵的大小,返回矩阵MatrixID 的行数Rows和列数Columns 。


max_matrix
max_matrix ( : : MatrixID, MaxType : MatrixMaxID )
返回矩阵MatrixID的最大值MatrixMaxID ,最大值类型MaxType 可以是’columns’,’rows’,’full’。
如果MaxType=’columns’,返回各列的最大值:

如果MaxType=’rows’,返回各行的最大值:

如果MaxType=’full’,返回矩阵的最大值:


mean_matrix
mean_matrix ( : : MatrixID, MeanType : MatrixMeanID )
返回矩阵MatrixID的平均值MatrixMeanID ,平均值值类型MeanType 可以是’columns’,’rows’,’full’。
如果MeanType=’columns’,返回各列的平均值:

如果MeanType=’rows’,返回各行的平均值:

如果MeanType=’full’,返回矩阵的平均值:


min_matrix
min_matrix ( : : MatrixID, MinType : MatrixMinID )
返回矩阵MatrixID的最大值MatrixMinID ,最小值类型MinType 可以是’columns’,’rows’,’full’。
如果MinType=’columns’,返回各列的最小值:


如果MinType=’rows’,返回各行的最小值:


如果MinType=’full’,返回矩阵的最小值:


norm_matrix
norm_matrix ( : : MatrixID, NormType : Value )
矩阵MatrixID的范数Value ,范数类型NormType 。
如果NormType=’frobenius-norm’,计算公式为:


如果NormType=’infinity-norm’,计算公式为:


如果NormType=’1-norm’,计算公式为:

如果NormType=’2-norm’,计算公式为:


sum_matrix
sum_matrix ( : : MatrixID, SumType : MatrixSumID )
返回矩阵MatrixID的和MatrixSumID ,元素和的类型SumType 可以是’columns’,’rows’,’full’。
如果SumType=’columns’,返回各列元素的和:


如果SumType=’rows’,返回各行元素的和:


如果SumType=’full’,返回矩阵所有元素的和:


文件操作(File)
write_matrix
write_matrix( : : MatrixID, FileFormat, FileName : )
以格式FileFormat写矩阵MatrixID至文件FileName 。格式FileFormat有两种’ascii’, ‘binary’,文件名FileName 尾缀为’mtx’。

read_matrix
read_matrix( : : FileName : MatrixID)
读取由write_matrix算子保存的文件,赋值给矩阵MatrixID。文件名FileName 尾缀为’mtx’。

serialize_matrix
serialize_matrix( : : MatrixID : SerializedItemHandle)
序列化矩阵,矩阵句柄MatrixID 序列化后为SerializedItemHandle。与deserialize_matrix算子成对出现。

deserialize_matrix
deserialize_matrix( : : SerializedItemHandle : MatrixID)
反序列化SerializedItemHandle 为矩阵MatrixID。与serialize_matrix算子成对出现。
————————————————
版权声明:本文为CSDN博主「UPUPUPEveryday」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40948750/article/details/113252734

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值