一、數組操作
對數組可以完成整體賦值,區域賦值,數組之間賦值,某個元素賦值(這個很類似Matlab)
count_seconds(T1) Htuple1 := [1,2,3,4,5,6] Htuple3 := sin(Htuple1) *數組元素修改 Htuple1[2] := 'ABC' *數組區域修改 Htuple1[1:3] := ['ccc','ddd','eee'] *數組之間賦值 Htuple2 := Htuple1[1:|Htuple1|-1] count_seconds(T2) T3 := T2-T1
逐步運行
count_seconds(t)算子是計算 程序運行的時間;
二、文件操作
文件操作包括讀和寫,文件格式有:Text,圖像,區域等,常用算子解釋如下:
1.open_file( : : FileName, FileType : FileHandle)
'output':創建新的文本,用write
‘append':在原有的文本基礎上寫入該文件
'input':打開文件,打開一個已經存在的文件,用以read
2.fwrite_string( : : FileHandle, String : )
寫入文件
3.fnew_line( : : FileHandle : )
換行
4.close_file( : : FileHandle : )
關閉文件
5.fread_char( : : FileHandle : Char)
讀入字符
6.fread_line( : : FileHandle : OutLine, IsEOF)
行讀取,IsEOF:判斷是否到了文本文件的末尾
7.fread_string( : : FileHandle : OutString, IsEOF)
*區域增長算子
regiongrowing (Image, Regions, 3, 3, 6, 100)
count_obj (Regions, Number)
*創建一個即將要入數值文件
open_file ('E:/欣奕華/項目/Halcon/STUDY/網絡課程筆記/1.文件數組/area.dat', 'output', FileHandle)
*選擇區域
select_obj (Regions, ObjectSelected, I)
area_center (ObjectSelected, Area, Row, Column)
*文件要寫入值
fwrite_string (FileHandle, I + ' ' + 'Row :'+ Row + ' Column :'+ Column + 'Area :'+Area )
*換行
fnew_line (FileHandle)
endfor
regiongrowing (Image, Regions, 3, 3, 6, 100) 區域增長算子
函數作用:
用區域生長實現圖像分割
函數原理:
如果相鄰像素的灰度值差小於等於Tolerance,則被融為一個區域。因為矩形一般大於1個像素,所以常常在調用regiongrowing前會用大小至少為Row*Column的低通濾波器平滑一下。如果圖像包含小噪聲並且矩形很小,平滑后這些因素大都會被去除。而區域包含至少MinSize個點才被挑選出來。區域生長是一個非常快的算子,因此適合用於對時間要求嚴苛的應用中。
參數列表:
Image:輸入圖像
Regions:輸出被分割后的區域
Row:被檢測像素的行距離,Row >= 1 && odd(Row) (為奇數的意思)
Column:被檢測像素的列距離,Column >= 1 && odd(Column)
Tolerance:被檢測像素的灰度差小於等於該值時,被計入同一區域,Tolerance >= 0 && Tolerance < 127
MinSize:輸出區域的最小大小,MinSize >= 1
算子時間復雜度:
如果N是輸出區域的個數,M是這些區域中點的個數,那復雜度為O(N*log(M)*M)