for - 啟動乙個通常是執行固定次數的迭代的迴圈分段,。
for( : : start, end, step : index)
在hdevelop中的語法:for index := start to end by step。
for語句啟動乙個通常是執行固定次數的迭代的迴圈分段。 for分段結束於相應的endfor語句。
迭代次數由start值,end值和step值共同決定。 所有這些引數都不一定是常量值,可以用表示式或變數初始化替代。 請注意,這些迴圈引數只被計算一次,即在for迴圈輸入之前。 它們在迴圈之後不被重新計算,即在迴圈內對這些變數的任何修改都不會影響迭代次數。
傳遞的迴圈引數必須是整型或實型。 如果所有輸入引數都是整數型別的,那麼index變數也是整型。 在所有其他情況下,index變數將是real型別的。
在每次迭代開始時,將迴圈變數index與end引數進行比較。 如果step為正,則只要index變數小於或等於end引數,就會執行for迴圈。 如果step為負,則只要index變數大於或等於end引數,就會執行for迴圈。
注意:如果將step設定為real型別的值,則在index變數預期與上乙個週期中的end值完全匹配的情況下,可能會因為四捨五入誤差而忽略最後乙個迴圈。 因此,在一些系統中,下面的迴圈沒有按照預期的那樣執行了四次(index變數設定為1.3,1.4,1.5和1.6),只執行了三次,因為在三次加法之後,索引變數由於四捨五入的誤差而略大於1.6。
i:=for index := 1.3 to 1.6 by 0.1
i :=[i,index]
endfor
在迴圈內容的執行之後,即在到達相應的endfor語句或者continue語句之後,迴圈計數器index的當前值會加上step(在for迴圈的開始處被初始化)。 然後,如上所述重新判斷迴圈條件。 根據結果,迴圈要麼被重新執行,要麼執行完畢。執行完畢時,將會繼續執行相應的endfor語句之後的第乙個語句。
迴圈中的存在break語句---沒有被更多的內部分段所覆蓋(that is not covered by a more internal block)---立即離開迴圈,並在相應的endfor語句之後繼續執行。 與之相反的是,continue語句用於忽略當前迴圈中其餘的迴圈內容,並繼續執行索引變數並重新判斷迴圈條件。
注意:在halcon 11中,for迴圈相對於index變數的行為發生了變化:在以前的版本中,迴圈體內的index變數的變化被for語句忽略。 在判斷迴圈條件之前,index變數將被重置為乙個內部計數器,計數器的計算公式如下:
index := start + count * step
count是已經執行的迴圈次數。
使用halcon 11之前的halcon版本儲存的程式和程式(program and procedure)在載入時通過分析它們的for迴圈保持不變地執行:如果在迴圈體內修改了這樣的for迴圈的index變數,則迴圈被設定為相容模式並會進行相應的標註。所有以這種方式標記的迴圈都是使用舊的語義執行的,即在每個迴圈週期之前將index變數重置為內部計數器以保持舊的行為。在程式列表中,for語句由乙個警告三角形和行尾的標籤__use_internal_index__標記。另外,在運算元視窗中也會顯示警告。check box允許取消所選for迴圈的相容模式,並使用新的語義執行。在全文編輯器中刪除標籤__use_internal_index__具有相同的效果。但是,為了保持程式行為,必須通過將迴圈體開頭的index變數複製到區域性變數來稍微調整for迴圈體。這個區域性變數可以在迴圈體內隨意使用和修改。
在任何情況下,建議避免在其內部修改for迴圈的index變數,因為**變得難以除錯,**將不相容halcon 11之前的halcon版本。
如果for迴圈停止,例如通過停止語句或按下停止按鈕,並且如果使用者手動放置pc(程式計數器),則只要pc還在for迴圈內,for迴圈在當前迭代中繼續或者跳到endfor語句。 如果pc放置在在for語句中(或之前)並再次執行,則迴圈將重新初始化並在開始時重新啟動。
start (input_control) number → (integer / real)
迴圈變數的起始值。
預設值: 1
end (input_control) number → (integer / real)
迴圈變數的結束值。
預設值: 5
step (input_control) number → (integer / real)
迴圈變數的增量值。
預設值: 1
index (output_control) number → (integer / real)
迴圈變數
read_image (image, 'fabrik')
threshold (image, region,
128, 255
)connection (region, connectedregions)
select_shape (connectedregions, selectedregions,
'area
', '
and', 150, 99999
)area_center (selectedregions, area, row, column)
dev_close_window ()
dev_open_window (
0, 0, 512, 512, '
black
', windowhandle)
dev_display (image)
dev_display (selectedregions)
dev_set_color (
'white')
for index := 0 to |area| - 1 by 1
set_tposition (windowhandle, row[index], column[index])
write_string (windowhandle,
'area=
' +area[index])
endfor
如果指定引數的值是正確的,for(作為運算元)返回2(h_msg_true)。 否則,會引發異常並返回錯誤**。
while, until
repeat, break, continue, endfor
foundation
match_function_trans.hdev calculate transformation parameters between two functions
fuzzy_measure_pin.hdev measure pins of an ic using fuzzy measuring
for.hdev use a for loop to iterate over extracted blobs
clip.hdev determine the position and orientation of clips
assign.hdev assign values to variables and tuple elements
halcon運算元翻譯 find text
運算元 find text image textmodel textresultid 功能 在影象中查詢乙個文字片段並輸出控制代碼。find text在image中查詢由textmodel指定的文字,並以textresultid返回結果。可以使用get text result和get text ob...
halcon運算元翻譯 median image
運算元 median image image imagemedian masktype,radius,margin 功能 使用不同級別掩碼的中值濾波。median image使用乙個正方形或圓形的掩碼對輸入的影象進行中值濾波,濾波結果返回到imagemedian中。可以使用masktype選擇掩碼的...
halcon運算元翻譯 select shape
運算元 select shape regions selectedregions features,operation,min,max 功能 根據區域要求的特徵提取適應的區域。輸入引數 regions 輸入需要測的區域 陣列 features 輸入要檢測的特徵 為以上函式的特徵係數 考參考徵 are...