• Halcon 小笔记 C# 图片是否有效


    判断图片是否有效

    if (ho_imgOrg.Key.ToInt64() == 0)
        return;
    
    • 1
    • 2

    字符串, 格式化

    * 数值转为字符串
    ShowMsg := BallRadius1 $'.3f'
    
    • 1
    • 2

    窗口显示字符串,窗口显示信息

    * 显示信息 12 为坐标
    disp_message (WindowHandle, 'ShowMsg', 'image', 12, 12, 'black', 'true')
    
    • 1
    • 2

    添加到数组,数组添加数据、数组累加、数组合并

    普通数值

    * 数组的创建
    BallDiffAbsList:=[]
    * 创建元素
    RadiusDiffAbs = 1
    * 元素添加到数组中
    BallDiffAbsList:=[BallDiffAbsList, RadiusDiffAbs]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    区域\图片数组

    * 创建数组
    gen_empty_obj (BadPadRegions)
    
    * 生成区域 padDetectCircle
    
    * 将区域添加到数组中
    concat_obj (BadPadRegions, padDetectCircle, BadPadRegions)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    数组的遍历

    * 统计数组的个数
    count_obj (FoundRegions, objNumber)
    
    * 遍历数组
    for I := 1 to objNumber by 1
        * 选择其中的一个元素
        select_obj (FoundPadRegions, selectRegion, I)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    数组中寻找 搜索某个值/搜索数组

    * 输出 MinIndex 索引
    tuple_find (padDistances, PadsMinDistance, MinIndex)
    
    • 1
    • 2

    绝对值

    * 数值相减的绝对值
    tuple_abs(Radius1 - Radius2, RadiusDiffAbs)
    
    • 1
    • 2

    获取数组的最小值、最大值

    * 获取数组中最小的值
    tuple_min (padDistances, MinDistance)
    
    tuple_max (padDistances, MaxDistance)
    
    • 1
    • 2
    • 3
    • 4

    计算多个点与中心点的距离 /点点距离/计算点与点距离

    * 生成多个 中心点坐标(方便后续多点计算)
    tuple_gen_const (Number, PadRow, centerRows)
    tuple_gen_const (Number, PadCol, centerCols)
    
    * 多点与点的距离 
    * Rows, Columns 多点的的数组
    * 中心坐标 centerRows centerCols
    distance_pp (int(Rows), int(Columns), centerRows, centerCols, padDistances)   
    
    * 最近距离
    tuple_min (padDistances, PadsMinDistance)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    彩色图片==>灰度图片

    rgb1_to_gray (Image, GrayImage)
    
    * 抽取通道
    access_channel
    
    * 获取通道数
    count_channels
    
    * 通道的分离
    decompose3
    
    * 合并通道
    compose3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    获取最大连通域

    * 连通域分析
    connection (RegionFillUp, ConnectedRegions)
    * 获取最大连通域
    select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 100)
    
    • 1
    • 2
    • 3
    • 4

    连通域的凸包区域

    * 凸包区域
    shape_trans (RegionFillUp, RegionTrans, 'convex')
    
    • 1
    • 2

    最小外接矩形

    * 外接矩形 
    smallest_rectangle2 (RegionTrans, Row, Column, Phi, Length1, Length2)
    
    • 1
    • 2

    仿射变换

    * 计算仿射变换矩阵
    vector_angle_to_rigid (Row, Column, Phi, Row, Column, 0, HomMat2D)
    
    * 将原始图片转正
    affine_trans_image (GrayImage, Image2, HomMat2D, 'constant', 'false')
    
    • 1
    • 2
    • 3
    • 4
    • 5

    设置显示颜色

    dev_set_color ('red')
    
    • 1
  • 相关阅读:
    蓝牙运动耳机什么品牌性价比高,六款值得推荐的运动耳机分享
    基于C#的GRPC
    代驾APP_第一章_项目环境搭建_第二节
    初识c++
    Navicat连接openGauss数据库报错
    MIPS架构的启动地址随笔
    vue3 使用语法糖,子父子间的传值以及方法调用
    [羊城杯 2020]EasySer
    Qt 学习(四) —— QBoxLayout盒模型布局
    c++ 学习 之 继承中静态成员函数和静态成员变量
  • 原文地址:https://blog.csdn.net/weixin_45875105/article/details/126128479