halcon算子

1*读取图片算子

*Image 输出参数 读取图片之后 把图片赋值给image这个变量

*'printer_chip/printer_chip_01'相对路径

read_image (Image, 'printer_chip/printer_chip_01')

2*阈值分割(blobopen_framegrabber ('File', 1, 1, 0, 0, 0, 0, 'default', -1, 'default', -1, 'false', 'printer_chip/printer_chip_01', 'default', 1, -1, AcqHandle)

grab_image_start (AcqHandle, -1))

*参数1输入图片

*参数2 输出的区域

*参数3和参数4提取的范围

threshold (Image2, Region, 10, 80)

连通区域

*参数1输入参数传入的区域

*参数2 输入参数 分割之后的区域数组

connection (Region, ConnectedRegions)

*筛选合适的区域

*1输入的连通区域

*2输出的分割之后的区域

*3筛选的属性 area:面积

*5、6最小值和最大值

select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 5000, 99999)

*打开图像采集接口

open_framegrabber ('File', 1, 1, 0, 0, 0, 0, 'default', -1, 'default', -1, 'false', 'printer_chip/printer_chip_01', 'default', 1, -1, AcqHandle)

grab_image_start (AcqHandle, -1)//开始

深度解析

'File', // 采集接口类型:File=从文件读取(不是相机)

1, 1, // 横向/纵向图像部分(默认1=全图)

0, 0, 0, 0, // 图像起始坐标、宽高(默认0=自动)

'default', // 端口

-1, // 图像通道数(-1=自动)

'default', // 采集格式

-1, // 比特深度

'false', // 异步采集

'printer_chip/printer_chip_01', // 图像文件路径/前缀

'default', // 设备参数

1, // 帧率

-1, // 超时时间

AcqHandle // 输出:采集句柄(后续操作的唯一标识)

close_framegrabber (AcqHandle)//关闭

《基础知识》

halcon的数据类型:图形变量,控制变量

*图片变量:图片类型(image),区域(region)轮廓类型,

*控制变量:基本数据类型(整型,浮点类型,字符串类型bool类型),句柄,元组类型

*获取窗口的句柄

dev_get_window (WindowHandle)

*基本数据类型

*:=赋值的方式

a:=100//integer

b:=10.2//number

c:='12'//string

d:=true//布尔值转换成1或者0

*3数组类型

arr:=[]//空数组

arr1:=[1,2,3]//

f:=arr1[0]

arr2:=[1,true,'您好']

arr3:=[0:10]//从0开始到10结束 每次递增1

arr4:=[0:10:100]//从0开始到100结束 每次递增10

arr5:=[0:-10:-100]//从0开始到-100结束 每次递增-10

length:=|arr5|//数组的长度

*4 tuple常用的一些函数

tuple_abs(-10,Abs)//绝对值

tuple_add(3,10,Sum)//求和

tuple_ceil(1.1,Ceil)//向上求整

tuple_floor(1.1,A)//向下求整

tuple_concat(10,'你好',Conact)//合并到一个数组

tuple_remove (Conact, 1, Reduced)//移除指定位置的元素

tuple_is_number (Reduced, IsNumber)//判断数组中的元素是否是数字类型

*运算符号

a1:=10

a1:=a1+30

a1:=a1-10

a1:=a1*10

a1:=a1/9

a1:=a1%9

*流程控制

dev_clear_window()//清空窗体

a2:=90

a3:=9

if(a2#a3)//==相等//#不等 !=不等

*展示文本,展示字符,在窗口上展示,左上展示.黑色的字体

*[属性名],[属性值]预留参数

*shadow_color盒子阴影

dev_disp_text ('hello', 'window', 0, 100, 'black', ['box_color','shadow_color'], ['red','red'])

*参数1 窗体的句柄

*2内容

*3展示窗体上

*4/5坐标

*6颜色

*7/8预留参数

disp_text (WindowHandle, '非常优秀', 'window', 12, 12, 'black', [], [])

*for循环

*从1到5 每次叠加1

sum1:=0

for Index := 1 to 100 by 1

sum1:=sum1+Index

*8 while循环

count:=0

while (1)

count:=count+1

dev_disp_text (count, 'window', 90, 1+count*50, 'black', ['box_color','shadow_color'], ['red','red'])

if (count>10)

break

endif

endwhile

week:=1

*9switch 条件判断

switch(week)

case 1:

dev_disp_text ('周一', 'window', 200, 300, 'black', ['box_color','shadow_color'], ['red','red'])

break

case 2:

dev_disp_text ('周二', 'window', 200, 300, 'black', ['box_color','shadow_color'], ['red','red'])

break

default:

dev_clear_window()

break

endswitch

相关推荐
balmtv1 小时前
GPT-5.4镜像实测:gpt技术拆解——当AI学会操控电脑
人工智能·gpt·电脑
大傻^1 小时前
Spring AI 2.0 生产部署指南:从 1.x 迁移、性能调优与云原生实践
人工智能·spring·云原生·springai
不懒不懒1 小时前
【机器学习模型评估:8种算法对比实战(本篇文章先介绍6种)】
人工智能·机器学习
JEECG低代码平台1 小时前
JeecgBoot低代码 AI工作流变量聚合节点:多路数据择优合并与智能兜底方案
人工智能·低代码
2501_933329551 小时前
万字拆解Infoseek舆情监测系统:基于大模型+多模态的分布式舆情中台架构实践
人工智能·分布式·架构·媒体
大傻^1 小时前
SpringAI2.0 RAG 完整实现:Document ETL、Vector Store 与检索增强
人工智能·检索增强·rag·springai
人工智能AI技术1 小时前
C# Runner + OpenClaw双实战:用.NET写原生AI Agent,告别Python依赖
人工智能·c#
8Qi82 小时前
Hello-Agents学习笔记--旅行助手智能体案例
人工智能·llm·agent·智能体·tavily