zoukankan      html  css  js  c++  java
  • Halcon学习笔记(一)

    一、Halcon编程之图像处理

    1、读取图片

    1、读取单个图片:

    1.1 直接用算子read_image

    read_image (Image, 'D:/3.tiff') 

    2、读取多个图片

    2.1 定义一个存放图片路径的数组,通过循环读取

    imagepath:=[]

    imagepath[0]:=['D:/1.tiff']
    imagepath[1]:=['D:/2.tiff']
    imagepath[2]:=['D:/3.tiff']
    for Index := 1 to 5 by 1
    read_image (Image,imagepath[Index])
    endfor

     2.2 循环遍历读取

    for i := 1 to 3 by 1
    read_image (Image,'D:/'+i+'.tiff')
    endfor

    2.3 循环遍历读取

    list_files ('D:/Images', ['files','directories','recursive','max_depth 2','max_files 8','follow_links'], ImageFiles)
    tuple_regexp_select (ImageFiles, ['\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
    for Index := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index])
    * Image Acquisition 02: Do something
    endfor

    3、工具栏—>读取图像

    4、通过工具栏的【助手】

    2、图像预处理

    一般来说,我们采集到的图像会有一些小黑点,小斑点,不平滑等因素会会影响我们后期的算法,此时就需要我们对其图片进行预处理。

    下面是一些预处理基本算子:

    1、消除噪声:mean_image/binomial_filter

    mean_image(Image,ImageMean,MaskWidth,MaskHeight)

    参数:

    Image:输入图像
    ImageMean:输出图像
    MaskWidth:遮掩的宽度【要过滤的宽度】
    默认值: 9
    建议值: 3, 5, 7, 9, 11, 15, 23, 31, 43, 61, 101
    典型区域值: 1 ≤ MaskWidth ≤ 501
    MaskHeight:遮掩的高度【要过滤的高度】
    默认值: 9
    建议值: 3, 5, 7, 9, 11, 15, 23, 31, 43, 61, 101
    典型区域值: 1 ≤ MaskHeight ≤ 501

    binomial_filter(Image,ImageBinomial,MaskWidth,MaskHeight)

    参数:

    Image :输入图像

    ImageBinomial:输出图像
    MaskWidth :遮掩的宽度【要过滤的宽度】
    默认值: 5
    可选值: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37
    MaskHeight :遮掩高度【要过滤的高度】
    默认值: 5
    可选值: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37

    2、抑制小斑点或者细线:median_image

    median_image(Image,ImageMedian,MaskType,Radius,Margin)

    参数:

    Image:输入图像
    ImageMedian:输出图像
    MaskType:掩饰类型
    Filter mask type.
    默认值: 'circle'
    可选值: 'circle', 'square'
    可选值 (为计算机设备): 'square'
    Radius :半径
    默认值: 1
    可选值 (为计算机设备): 1, 2
    建议值: 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15, 19, 25, 31, 39, 47, 59
    典型区域类型值: 1 ≤ Radius ≤ 4095

    Margin :
    边界处理.
    默认值: 'mirrored'
    可选值 (为计算机设备): 'mirrored'
    建议值: 'mirrored', 'cyclic', 'continued', 0, 30, 60, 90, 120, 150, 180, 210, 240, 255

    3、平滑:smooth_image 

    smooth_image(Image,ImageSmooth,Filter,Alpha)

    参数:

    Image :输入图像
    ImageSmooth:输出图像
    Filter :过滤
    默认值: 'deriche2'
    可选值: 'deriche1', 'deriche2', 'gauss', 'shen'
    Alpha :
    过滤参数: 小值导致强烈的平滑(亦然用 bei 'gauss').
    默认值: 0.5
    建议值: 0.1, 0.2, 0.3, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 7.0, 10.0
    典型的范围值: 0.01 ≤ Alpha ≤ 50.0
    最小增量: 0.01
    建议增加: 0.1
    限制: Alpha > 0

    4、保存边缘的平滑:anisotropic_diffusion

    anisotropic_diffusion(Image,ImageAniso,Mode,Contrast,Theta,Iterations)

    参数:

    Image:输入图像

    ImageAniso:输出图像

    Mode:

    扩散系数函数的振幅
    默认值: 'weickert'
    可选值: 'parabolic', 'perona-malik', 'weickert'

    Contrast:

    对比,差别

    默认值: 5.0
    建议值: 2.0, 5.0, 10.0, 20.0, 50.0, 100.0
    限制: Contrast > 0

    Theta:
    时间步
    默认值: 1.0
    建议值: 0.5, 1.0, 3.0
    限制: Theta > 0
    Iterations:

    迭代次数
    默认值: 10
    建议值: 1, 3, 10, 100, 500
    限制: Iterations >= 1

     5、scale_image

    scale_image(Image : ImageScaled : Mult, Add : )缩放图像的灰度值。最佳Mult和Add值的选取由下: 

    其中:GMin为图像的最大灰度值,GMax为图像的最小灰度值。

    可配合算子min_max_gray(Regions, Image : : Percent : Min, Max, Range)得到。

    min_max_gray(Regions, Image : : Percent : Min, Max, Range)确定区域内的最小和最大灰度值

    min_max_gray创建输入图像图像区域内灰度值绝对值的直方图(参见gray_histo),并计算与输入图像区域相对应的像素百分比。然后它会在直方图的两边以这个像素的数量向内移动,并确定最小和最大的灰度值。

    6、Sigma_image

  • 相关阅读:
    ExtJS小技巧
    Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询
    NPM 私服
    IDEA 不编译java以外的文件
    SQL 引号中的问号在PrepareStatement 中不被看作是占位符
    Chrome 浏览器自动填表呈现淡黄色解决
    批量删除Maven 仓库未下载成功.lastupdate 的文件
    Oracle 11g 监听很慢,由于监听日志文件太大引起的问题(Windows 下)
    Hibernate 自动更新表出错 建表或添加列,提示标识符无效
    Hibernate 自动更新表出错 More than one table found in namespace
  • 原文地址:https://www.cnblogs.com/ouxinlian/p/6817200.html
Copyright © 2011-2022 走看看