Halcon 學習筆記--數組操作和文件(4)


一、數組操作

      對數組可以完成整體賦值,區域賦值,數組之間賦值,某個元素賦值(這個很類似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( : : FileNameFileType : FileHandle)

         FileType

        'output':創建新的文本,用write

        ‘append':在原有的文本基礎上寫入該文件

        'input':打開文件,打開一個已經存在的文件,用以read

     2.fwrite_string( : : FileHandleString : )

        寫入文件

    3.fnew_line( : : FileHandle : )

       換行

    4.close_file( : : FileHandle : )

      關閉文件

   5.fread_char( : : FileHandle : Char)

     讀入字符

   6.fread_line( : : FileHandle : OutLineIsEOF)

     行讀取,IsEOF:判斷是否到了文本文件的末尾

  7.fread_string( : : FileHandle : OutStringIsEOF)

read_image (Image, 'fabrik')
*區域增長算子
regiongrowing (Image, Regions, 3, 3, 6, 100)
count_obj (Regions, Number)
*創建一個即將要入數值文件
open_file ('E:/欣奕華/項目/Halcon/STUDY/網絡課程筆記/1.文件數組/area.dat', 'output', FileHandle)
for I := 1 to Number by 1
    *選擇區域
    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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM