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

相关推荐
Samooyou6 小时前
RAG项目案例--02在线检索&过滤流水线
人工智能·python·ai·全文检索·检索
动能小子ohhh6 小时前
DocForge平台的设计与开发--文件上传接口的实现
开发语言·人工智能·python·langchain·ocr·fastapi
朴马丁7 小时前
预制菜的“数字厨房”:PLM如何支撑菜品标准化与供应链高效协同?
大数据·人工智能·食品行业·流程行业plm
小沈同学呀7 小时前
SpringAI+MCPServer实战-StreamableHTTP协议打造企业级AI工具服务
人工智能·微服务架构·springai·mcpserver·javaai·streamablehttp
net3m337 小时前
一阶软件低通滤波器算法
人工智能·算法
武汉唯众智创7 小时前
边缘端部署 AI 心理分析:自研边缘主机跑通人脸 + 语音双模态推理,不用云端算力详解
人工智能·ai心理健康·校园心理健康·多模态推理·人脸情绪识别·语音情感分析·心理健康信息化平台
IT_陈寒7 小时前
Python的线程池把我坑惨了,原来异步不是万能的
前端·人工智能·后端
水木流年追梦7 小时前
大模型入门-大模型优化方法12-YaRN 长文本外推技术
人工智能·分布式·算法·正则表达式·prompt
Litluecat7 小时前
2026年6月6日科技热点新闻
人工智能·科技·热点·每日
小旭95277 小时前
Spring AI Alibaba 从入门到实战:一站式掌握企业级 AI 应用开发
java·人工智能·spring