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

  • 相关阅读:
    C# winform 学习(三)
    (Java实现) 均分纸牌
    (Java实现) 拦截导弹
    Delphi从内存流中判断图片格式(好多相关文章)
    Qt之QTableView显示富文本(使用了QAbstractTextDocumentLayout和QTextDocument)
    MAC和PHY的区别(网线上传递的是模拟信号)
    Qt之模型/视图(自定义按钮)(重绘QStyleOptionButton)
    QQ音乐的请求
    Log4j、Log4j 2、Logback、SFL4J、JUL、JCL的比较
    LRU Cache
  • 原文地址:https://www.cnblogs.com/ouxinlian/p/6817200.html
Copyright © 2011-2022 走看看