halcon的矩阵运算

矩阵创建及运算

  • 创建矩阵
    m := [1,2,3,4]
    create_matrix(2,2,[1.0,2.0,3.0,4.0],matrix_id)
    create_matrix(2,2,[2,3,1,3],matrix_1_id)

  • 获取矩阵的值

  • 获取单个值
    get_value_matrix(matrix_id,1,0,value)

  • 获取所有值
    get_full_matrix(matrix_id,values)

  • 设置矩阵元素值
    set_value_matrix(matrix_1_id,1,1,-10)

*设置整个矩阵元素值
set_full_matrix(matrix_1_id,1)

  • 获取矩阵大小
    get_size_matrix(matrix_id,rows,cols)

  • 矩阵的逆
    invert_matrix(matrix_id,‘general’,0,matrix_inv_id)
    get_full_matrix(matrix_inv_id,values_inv)

  • 矩阵的范数
    norm_matrix(matrix_id,‘2-norm’,value_norm)

m1 := [3.0,-3.0,2.0,-5.0,-3.0,2.0]
m2 := [3.0,-3.0,1.0,1.0,2.0,-1.0,-2.0,-1.0]
m3 := [1.0,0.5,2.0]

create_matrix(3,2,m1,matrix_a_id)
create_matrix(2,4,m2,matrix_b_id)
create_matrix(3,1,m3,matrix_c_id)

m3 := [1,2,3,4,5,6,7,8,9]
m4 := [1,2,3,1,2,3,1,2,3]
create_matrix(3,3,m3,matrix_3_id)
create_matrix(3,3,m4,matrix_4_id)

  • 矩阵求和运算

  • 按列求和
    sum_matrix(matrix_3_id,‘columns’,matrix_sum_cols_id)
    get_full_matrix(matrix_sum_cols_id,values_sum_cols)

  • 按行求和
    sum_matrix(matrix_3_id,‘rows’,matrix_sum_rows_id)
    get_full_matrix(matrix_sum_rows_id,values_sum_rows)

  • 整个矩阵求和
    sum_matrix(matrix_3_id,‘full’,matrix_sum_full_id)
    get_full_matrix(matrix_sum_full_id,values_sum_full)

  • 矩阵相加
    add_matrix(matrix_3_id,matrix_4_id,matrix_add_id)
    get_full_matrix(matrix_add_id,values_add)

  • 矩阵相减
    sub_matrix(matrix_3_id,matrix_4_id,matrix_sub_id)
    get_full_matrix(matrix_sub_id,values_sub)

  • 矩阵相乘
    mult_matrix(matrix_a_id,matrix_b_id,‘AB’,matrix_mult_id)
    get_full_matrix(matrix_mult_id,values_mult)

  • 矩阵与常量相乘
    scale_matrix(matrix_3_id,1.5,matrix_scale_id)
    get_full_matrix(matrix_scale_id,values_scale)

  • 矩阵相除
    div_element_matrix(matrix_3_id,matrix_4_id,matrix_div_id)
    get_full_matrix(matrix_div_id,values_matrix_div)

  • 矩阵 element-wise相乘

mult_element_matrix(matrix_3_id,matrix_4_id,mult_elems_id)
get_full_matrix(mult_elems_id,values_mult_elems)

  • 获取对角矩阵
    get_diagonal_matrix(matrix_3_id,0,vector_id)
    get_full_matrix(vector_id,values_diagonal)

  • 获取矩阵均值

  • 按列求均值
    mean_matrix(matrix_3_id,‘columns’,matrix_mean_cols_id)
    get_full_matrix(matrix_mean_cols_id,values_mean_cols)

  • 按行求均值
    mean_matrix(matrix_3_id,‘rows’,matrix_mean_rows_id)
    get_full_matrix(matrix_mean_rows_id,values_mean_rows)

  • 整个矩阵的均值
    mean_matrix(matrix_3_id,‘full’,matrix_mean_full_id)
    get_full_matrix(matrix_mean_full_id,values_mean_full)

  • 矩阵 element-wise 指数运算
    pow_element_matrix(matrix_3_id,matrix_4_id,matrix_pow_elem_id)
    get_full_matrix(matrix_pow_elem_id,values_pow_elem)

  • 矩阵指数运算
    pow_scalar_element_matrix(matrix_3_id,3,matrix_pow_scale_id)
    get_full_matrix(matrix_pow_scale_id,values_pow_scale)

  • 矩阵开方运算
    sqrt_matrix(matrix_3_id,matrix_sqrt_id)
    get_full_matrix(matrix_sqrt_id,values_sqrt)

  • 获取子矩阵
    get_sub_matrix(matrix_3_id,0,0,2,2,matrix_submatrix_id)
    get_full_matrix(matrix_submatrix_id,values_submatrix)

  • 获取矩阵最大值

  • 按列获取
    max_matrix(matrix_3_id,‘columns’,matrix_max_cols_id)
    get_full_matrix(matrix_max_cols_id,values_max_cols)

  • 按行获取
    max_matrix(matrix_3_id,‘rows’,matrix_max_rows_id)
    get_full_matrix(matrix_max_rows_id,values_max_rows)

  • 整个矩阵最大值
    max_matrix(matrix_3_id,‘full’,matrix_max_full_id)
    get_full_matrix(matrix_max_full_id,values_max_full)

  • 获取矩阵最小值

  • 按列获取
    min_matrix(matrix_3_id,‘columns’,matrix_min_cols_id)
    get_full_matrix(matrix_min_cols_id,values_min_cols)

  • 按行获取
    min_matrix(matrix_3_id,‘rows’,matrix_min_rows_id)
    get_full_matrix(matrix_min_rows_id,values_min_rows)

  • 整个矩阵最大值
    min_matrix(matrix_3_id,‘full’,matrix_min_full_id)
    get_full_matrix(matrix_min_full_id,values_min_full)

  • 矩阵线性求解
    solve_matrix(matrix_3_id,‘general’,0,matrix_c_id,matrix_solve_result_id)
    get_full_matrix(matrix_solve_result_id,values_matrix_solve)

  • 矩阵SVD求解
    svd_matrix(matrix_3_id,‘full’,‘right’,matrix_u_id,matrix_s_id,matrix_v_id)

  • get_full_matrix(matrix_u_id,values_u)
    get_full_matrix(matrix_s_id,values_s)
    get_full_matrix(matrix_v_id,values_v)

  • 矩阵转置
    transpose_matrix(matrix_3_id,matrix_trans_id)
    get_full_matrix(matrix_trans_id,values_trans)

  • 矩阵保存
    write_matrix(matrix_3_id,‘binary’,’…/…/temp/matrix_3_id.dat’)

  • 读取矩阵
    read_matrix(’…/…/temp/matrix_3_id.dat’,matrix_3_3_id)
    get_full_matrix(matrix_3_3_id,values_read)

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Halcon图像运算是指通过对图像进行代数运算来实现不同的图像处理目的。图像的代数运算也称为像元运算,它可以将多幅图像之间的像元一一对应并进行相应的加减乘除算法。其中,加法运算可以用于图像的合成和降低图像的随机噪声,但需要确保噪声之外的图像在运算前后保持不变。减法运算可以用于检测多幅图像之间的变化,也可以将目标从背景中分离出来。乘法运算可以通过掩模运算,提取图像中的局部区域。除法运算可以用于校正阴影和实现图像的归一化处理。 具体到Halcon的图像运算,例如图像乘法可以使用Halcon的mult_image函数实现。该函数会对两幅输入图像的像素进行逐个相乘的操作,并将结果保存在输出图像中。例如,可以通过以下代码实现图像乘法操作: read_image(image1,'1') read_image(image2,'2') mult_image(image1,image2,image,0.005,0) 在以上代码中,image1和image2是两幅输入图像,通过read_image函数读取。mult_image函数将image1和image2进行乘法运算,并将结果保存在image中。其中,0.005是乘法运算的比例因子,0是输出图像中像素的初始值。 除了乘法运算,Halcon图像运算还包括其他的算术和逻辑运算。这些运算可以通过改变图像像素的值来实现图像增强的效果,使得输出图像的灰度分布与原图不同。通过使用Halcon提供的图像运算函数,可以方便地对图像进行各种处理操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [HALCON学习笔记(三)——图像运算](https://blog.csdn.net/weixin_45482443/article/details/115834514)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值