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

文件路径信息分段

* 将文件路径(包含文件名)
* BaseName:文件名称
* Extension:扩展名
* Directory:路径
parse_filename (FileName, BaseName, Extension, Directory)

获取区域特征信息

// 获取区域矩形度
double objRectangularity = hRegionObject.RegionFeatures("rectangularity");
// 获取区域真圆度
double objCircularity = hRegionObject.RegionFeatures("circularity");

交互 绘制矩形 代码取消交互

// 绘制正矩形  row1, col1, row2, col2 为起始坐标
this.hWindowControl1.HalconWindow.DrawRectangle1Mod(row1, col1, row2, col2,
                out double row1o, out double col1o, out double row2o, out double col2o);
// 一般需要右键退出 绘制模式

// 退出绘制模式
HalconAPI.CancelDraw();                

控件显示闪烁问题

// 取消图片控件刷新
HOperatorSet.SetSystem("flush_graphic", "false");

// 清空控件历史图片与消息
this.hWindowControl1.HalconWindow.ClearWindow();
// 显示新的图片
HalconUtility.DisplayImage(this.hWindowControl1, hImage);

// 开始刷新图片
HOperatorSet.SetSystem("flush_graphic", "true");

切割图片

 * 生成矩形区域
 gen_rectangle1 (Rectangle, Row-150, Column-150, Row+149, Column+149)
 * 聚焦图片区域
 reduce_domain (Image, Rectangle, ImageReduced)
 * 切割拷贝图片
 crop_domain (ImageReduced, ImagePart)

生成空图片/ 并生成(空)黑色/白色图片

* Image:被复制的图片,ImageCleared:目标图片,255:白色
gen_image_proto (Image, ImageCleared, 255)

判断图片是否有效

if (ho_imgOrg != null && ho_imgOrg.Key.ToInt64() == 0)
    return;

字符串, 格式化

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

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

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

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

普通数值

* 数组的创建
BallDiffAbsList:=[]
* 创建元素
RadiusDiffAbs = 1
* 元素添加到数组中
BallDiffAbsList:=[BallDiffAbsList, RadiusDiffAbs]

区域\图片数组

* 创建数组
gen_empty_obj (BadPadRegions)

* 生成区域 padDetectCircle

* 将区域添加到数组中
concat_obj (BadPadRegions, padDetectCircle, BadPadRegions)

数组的遍历

* 统计数组的个数
count_obj (FoundRegions, objNumber)

* 遍历数组
for I := 1 to objNumber by 1
    * 选择其中的一个元素
    select_obj (FoundPadRegions, selectRegion, I)

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

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

绝对值

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

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

* 获取数组中最小的值
tuple_min (padDistances, MinDistance)

tuple_max (padDistances, MaxDistance)

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

* 生成多个 中心点坐标(方便后续多点计算)
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)

彩色图片==>灰度图片

rgb1_to_gray (Image, GrayImage)

* 抽取通道
access_channel

* 获取通道数
count_channels

* 通道的分离
decompose3

* 合并通道
compose3

获取最大连通域

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

连通域的凸包区域

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

最小外接矩形

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

仿射变换

* 计算仿射变换矩阵
vector_angle_to_rigid (Row, Column, Phi, Row, Column, 0, HomMat2D)

* 将原始图片转正
affine_trans_image (GrayImage, Image2, HomMat2D, 'constant', 'false')

设置显示颜色

dev_set_color ('red')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

廷益--飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值