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

相关推荐
stereohomology4 分钟前
大模型的观点谨:StoryTold 「Crafting Apps」四件套 · 深度总览
人工智能·llm
运维行者_19 分钟前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
信奥卷王34 分钟前
[GESP202609 六级] 分树规划
算法
Su米苏36 分钟前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
美狐美颜sdk39 分钟前
直播APP源码可以直接接入视频美颜sdk吗?技术方案详解
android·人工智能·音视频·美颜sdk·直播美颜sdk
夏幻灵41 分钟前
LeetCode 21:合并两个有序链表——双指针与哑节点详解
算法·leetcode·链表
问商十三载1 小时前
AI引擎生成式优化实践:刑事辩护律师团队IP构建
大数据·人工智能
冬奇Lab1 小时前
LLM 驱动的自动化测试系列(08):移动端自动化(四)——AppAgent:解析树与视觉特征的结合
人工智能·测试
蜗牛互联网1 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端