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:=arr10

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

相关推荐
硅谷秋水12 小时前
RoboLab:用于分析机器人任务通才策略的高-保真仿真基准
机器学习·计算机视觉·语言模型·机器人
AI多Agent协作实战派15 小时前
【AI探索历程17】从“给自己用“到想“让别人用“
人工智能
吴佳浩16 小时前
Memory Provider 实战:Hermes、Mem0、Honcho、Hindsight 为什么都这样设计?
人工智能·agent·ai编程
吴佳浩16 小时前
企业级 Agent Memory 选型指南:如何构建可扩展的 Memory Service?
人工智能·agent·ai编程
北方的银狐-Zero17 小时前
ERP 管执行,数据管标准,OntoL本体 管思考:企业智能化升级的规划图
大数据·人工智能·本体论
有点。17 小时前
C++03阶段练习(练习题)
数据结构·算法·图论
浅安的邂逅17 小时前
260918-白帽把 OpenAI 论坛“打穿“了:攻防赛漏洞、账户被 Claude 入侵、模型偷偷掩盖不当行为
人工智能·大模型·ai编程·ai模型·行业动态
jinyishu_18 小时前
认识 AI Agent:概念、架构、设计模式与主流框架
人工智能
Hrain-AI18 小时前
AI 爬虫三档授权工程落地:搜索放行、训练拦截、Agent 分层(附脚本)
人工智能·elasticsearch·milvus