zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    美丽的姑娘,你何时才能重现?
    成功三步曲:有勇、有谋、有德
    比目标远一点点,结果也许令你惊讶
    走别人的路,让别人无路可走!
    白领们注意啦:“过劳死”27个危险信号!
    企业发展靠创新,还是靠美女?
    学会和同事相处的30个原则
    上海雄联机械配件有限公司
    C# Keywords>Access Keywords
    Feature event receviers
  • 原文地址:https://www.cnblogs.com/xingyuanzier/p/12902484.html
Copyright © 2011-2022 走看看