在线仿真工具验证数字电路时序的一文说清
2026/1/9 20:39:13
*// 注释的符号是* *// F1--打开当前算子对应的帮助文档 *// F2--程序重置:清空运行过程中定义 / 生成的变量值,恢复至未启动初始状态,光标自动定位到第一行代码处 *// F3--激活选中程序行:取消选中代码的注释状态,程序自动定位至上次未运行位置或最新修改位置 *// F4--注释选中程序行:对选中的代码块添加注释标记,使其暂不参与程序执行 *// F5--运行全部程序:无断点时执行至程序结束;遇到断点或 stop() 语句则自动暂停 *// F6--单步执行(逐行跳过):逐行运行代码,遇自定义函数 / 算子时仅执行整体逻辑,不进入内部调试 *// F7--单步执行(逐行跳入):逐行运行代码,遇自定义函数 / 算子时进入其内部,用于调试深层逻辑 *// F8-- 单步跳出:从当前执行的函数 / 算子内部退出,回到调用该函数的下一行代码继续执行 *// F9--强制停止执行:终止当前正在运行的函数或程序进程 *// F10--断点设置 / 取消:在光标所在行标记断点;再次按下则取消该行的断点标记*// 算术运算符: +(加)、-(减)、*(乘)、/(除)%(取余,返回除法运算的余数), 无自增(++)、自减(--)运算符 *// 逻辑运算符: *//逻辑与:and(所有条件均满足时结果为真) *//逻辑或:or(任意一个条件满足时结果为真) *//逻辑非:not(对条件结果取反) *//逻辑异或:xor(仅当其中一个条件满足、其余条件不满足时结果为真,多条件下不可同时满足) *//数值对应:布尔值「真」对应数值 1,「假」对应数值 0 *// 赋值运算符: =(将右侧值赋给左侧变量), 无复合赋值运算符(如+=、-=、*=、/=均不支持) *// 比较运算符: *//大于:>、小于:<、大于等于:>=、小于等于:<= *//等于:= / ==(两个符号均可用于判断左右两侧值是否相等) *//不等于:!= / #(两个符号均可用于判断左右两侧值是否不相等*// 读取一张图片//--------------------- *// 参数1 读取之后图片存储的变量名 *// 参数2 是图片的路径 (printer_chip/printer_chip_01是相对路径) read_image (Image, 'printer_chip/printer_chip_01') read_image (Image1, 'C:/Users/ZN/AppData/Roaming/MVTec/HALCON-23.05-Progress/examples/images/pipe_wrench/pipe_wrench_1.png') *// ROI的代码//--------------------- gen_rectangle1 (ROI_0, 38.4831, 332.403, 309.669, 491.657) *// 定义一个变量//--------------------- x:=200 *// 加载多张图片1//--------------------- for Index := 1 to 5 by 1 read_image (Image, 'printer_chip/printer_chip_0'+Index) stop () endfor *// 读取多张图片2//--------------------- *// list_files 展示文件列表的算子 *// Files 输出参数 文件路径的集合 list_files ('D:/ChuanDingZN/全部学习记录/笔记/tupainji', 'files', Files) *// 遍历找到的所有图片//--------------------- for Index := 0 to |Files|-1 by 1 read_image (Image,Files[Index]) endfor* Image Acquisition 02: Code generated by Image Acquisition 02 *// ImageFiles元组内存入的是文件的绝对路径 list_files ('C:/Users/ZN/AppData/Roaming/MVTec/HALCON-23.05-Progress/examples/images/ampoules', ['files','follow_links'], ImageFiles) *// 通过正则筛选想要文件条件:筛选只要想要图形文件,忽略大小写 把复合条件的文件存入到到ImageFiles元祖中 *// ima|hobj:独有的文件类型 *// ignore_case:忽略大小写 tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles) *// 通过for循环,借助索引读取元组中存储的每一个图像文件 for Index := 0 to |ImageFiles| - 1 by 1 *//加载图像 read_image (Image, ImageFiles[Index]) * Image Acquisition 02: Do something endfor*// Halcon保存图像 *// 获取图片 read_image (Image, 'printer_chip/printer_chip_01') *// 第一种方式: 选中图形窗口-->右键-->保存窗口 *// 第二种方式: 使用write_image算子直接保存原始图像 *// 保存原始图像数据(无窗口标注/绘制元素,仅图像本身) *// 参数1 Image:输入参数,待保存的原始图像对象 *// 参数2 'tiff':输入参数,保存格式(支持tiff/jpg/png/bmp等,区分大小写) *// 参数3 0:输入参数,保存质量(0=默认质量;jpg格式可设1-9,9=最高质量) *// 参数4 输入参数,保存路径+文件名 write_image (Image, 'tiff', 0, 'D:/ChuanDingZN/全部学习记录/新/Halcon/day03/2.算子保存') *// 获取窗口句柄 dev_get_window (WindowHandle) *// 复制窗口图像生成一个图像变量 *// 将窗口显示内容(含绘制元素)复制为图像变量 *// 参数1 Image1:输出参数,窗口内容对应的图像变量 *// 参数2 WindowHandle:输入参数,目标窗口句柄 dump_window_image (Image1,WindowHandle ) *// 直接保存窗口内容到文件 默认是保存到类文件同级路径 (例程同级别目录) *// 参数1 WindowHandle:输入参数,目标窗口句柄 *// 参数2 'tiff':输入参数,保存格式 *// 参数3 输入参数,保存路径+文件名 *// 备注:直接保存窗口截图,包含所有绘制元素,与窗口显示效果完全一致 dump_window (WindowHandle, 'tiff', 'D:/ChuanDingZN/全部学习记录/新/Halcon/day03/3.halcon_dump') *// 截取图像中部分区域进行保存 生成一个图形变量 *// 参数1 Image1:输入参数,原始图像(此处为窗口复制的图像) *// 参数2 ImagePart:输出参数,截取后的区域图像 *// 参数3 20:输入参数,截取区域的起始行坐标(Row,垂直方向偏移) *// 参数4 150:输入参数,截取区域的起始列坐标(Column,水平方向偏移) *// 参数5 50:输入参数,截取区域的宽度(水平方向像素数) *// 参数6 260:输入参数,截取区域的高度(垂直方向像素数) *// 备注:坐标规则:Row越大越靠下,Column越大越靠右,需确保区域在图像范围内 crop_part (Image1, ImagePart, 20, 150, 50, 260)*// 读取一张图片 *// 参数1 读取之后图片存储的变量名 *// 参数2 是图片的路径 read_image (Image, 'clip') *// 1阈值分割 就是斑点分析工具 *// 参数2 Region 分割之后的区域 *// 参数3、4 提取区域阈值范围 threshold (Image, Region, 10, 119) *// 2连通器区域 该分开的分开该合并的合并 *// 参数1 Region 连通的区域 *// 参数2 ConnectedRegions 连通之后的区域,分开之后的区域 connection (Region, ConnectedRegions) *// 3根据筛选条件进行筛选 *// 参数1 ConnectedRegions 进行筛选的目标区域 *// 参数2 SelectedRegions 根据条件筛选之后的区域 *// 参数3 area 筛选条件是面积 *// 参数4 and 并且 *// 参数5、6 6000, 99999 面积最小值和最大值 select_shape (ConnectedRegions, SelectedRegions1, 'area', 'and', 3960, 8500) *select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 6000, 99999)希望对大家有所帮助, 感谢大家的关注和点赞。