文件路径信息分段
* 将文件路径(包含文件名)
* 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')