Halcon练习

发布时间 2023-04-07 15:51:50作者: 董锡振

1、数组操作:

arr :=[1,2,3,4,5] //定义数组
cnt :=|arr| //数组长度
a03 :=arr[2] //取单个值
par :=arr[0:2] //取多个值
copy :=arr[0:cnt-1]//复制数组

 

 

区域生长图像分割

regiongrowing (Image,Outregion: Row,Col,Tolerance,MinSize)

函数:regiongrowing (ImageMedian, Regions, 1, 1, 2, 100)

ImageMedian:输入的单通道图像

Regions:输出的一组区域

参数3和4:矩形的宽和高,奇数,可以视为卷积核

参数5:像素灰度值差-阈值

参数6:输出区域的最小像素数,默认为100 

质数: “素数就是质数,有无限个。除了1和该数本身以外不再有其他的因数的数被称为素数

 

 open_file('D:/bb/1.txt','output',FileHandle)
*打开文件
*参数1:文件名称
*参数2:文件访问类型
* 'input' 已存在的输入文件将以文本格式打开读取,该文件打开以后,将不能再往里面写东西
* 'output' 将打开一个新的输出文件,以便以文本格式写入,如果有同名文件,则原文件将先被删除
* 'append' 已存在的输出文件将以文本格式在文件末尾打开以供写入
* 'input_binary' 已存在的输入文件将以二进制格式打开读取
* 'output_binary' 打开一个新的输出文件,以二进制格式写入
* 'append_binary' 已存在的输出文件将以二进制格式在文件末尾打开以供写入
*对于文本文件,传递给FileType的元组可以通过以下编码设置之一进行扩展:
*'utf8_encoding' 文件中的字符串以UTF-8编码。这是默认值,因此对于UTF-8编码文件
* 和所有仅使用纯7位US-ASCII字符的文件,可以忽略此值
*'locale_encoding' 文件中的字符串采用本地8位编码,这取决于系统的当前语言环境设置
*'ignore_encoding' 不处理从文件中读取或写入的字符串的编码。在这种模式下,多字节字符
既不被处理也不被解释。此外,字符串不会被转码到HALCON库的当前编码中或从中转码
*参数3:文件句柄
fwrite_string (FileHandle, 'hallo')
*将一个或多个字符串或数字写入
*参数1:文件句柄
*参数2:要写入文件的值
fwrite_string (FileHandle, ',world')
fnew_line (FileHandle)
*写一个换行符并清除输出缓冲区
fwrite_string (FileHandle, '886')
close_file (FileHandle)
*关闭文本文件
*********************************************************
open_file ('D:/bb/1.txt', 'input', FileHandle)
fread_char (FileHandle, Char)
*一次读取一个字符。如果一直重复读到末尾,Char的值为'eof'(结束标记)
*注意:不识别中文
while(1)
if(Char='eof')
break
endif
wait_seconds (1)
fread_char (FileHandle, Char)
endwhile
close_file (FileHandle)

******************************************************
open_file ('D:/bb/1.txt', 'input', FileHandle)

while(1)
fread_line (FileHandle, OutLine, IsEOF)
*读取一行,包括换行符
*从当前文件位置开始,在文件末尾或找到第一个换行符时结束,文件的后续读取操作将在换行后开始,即在下一行的开头
*到达文件末尾,参数IsEOF将返回值1,否则返回0
*参数2:保存读取的一行文本

if(IsEOF=1)
break
endif
wait_seconds (2)
endwhile
close_file (FileHandle)

***************************************************
open_file ('D:/bb/1.txt', 'input', FileHandle)
while(1)
fread_string (FileHandle, OutLine, IsEOF)
*读取一行,不包括换行符
*从当前文件位置开始,在文件末尾或找到第一个换行符时结束,文件的后续读取操作将在换行后开始,即在下一行的开头
*到达文件末尾,参数IsEOF将返回值1,否则返回0
*参数2:保存读取的一行文本

if(IsEOF=1)
break
endif
wait_seconds (2)
endwhile
close_file (FileHandle)


file_exists ('D:/bb/1.txt', FileExists)
*检查文件是否存在
*参数1:文件路径
*参数2:如果存在返回TRUE,否则返回FALSE