zoukankan      html  css  js  c++  java
  • Halcon一日一练:阈值分割的几个算子

    threshold(Image:Region:MinGray:MaxGray:)

    功能:得到灰度值在最小与最大这间的那些部分。其返回仍然是一个区域。

    MinGray<MaxGray.

    这个算子可以用灰度直方图求取到最佳的域值 

    如在上一篇中,我们使用灰度直方图求取图像的最佳阈值,我们发现0-56时最佳,将值代入程序中即可。

    read_image(Image, 'Clip')//读取图像
     threshold(Image, Region, 0, 56)//对图像进行分割 
     connection(Region, ConnectedRegions)//连通区域
     select_obj(ConnectedRegions, ObjectSelected, 1)//选择区域中的索引区域1

    char_threshold(Image,HistoRegion:Characters:Sigma,Percent:Threshold)

    功能:阈值分割提取字符

    此方法的关键在于找到直方图中的最大值,在最大值的左侧找到关键阈值,其中阈值的计算方法如下:

    histogram[threshold]*100.0<histogram[maximum]*(100.0-Percent)

    也就是threshold所对应的灰度值频率不能大于最大值频率*(100。0-percent)

    例程:

    dev_close_window ()
    read_image (Alpha1, 'alpha1')
    get_image_size (Alpha1, Width, Height)
    dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
    set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
    dev_display (Alpha1)
    dev_set_color ('white')
    dev_clear_window ()
    char_threshold (Alpha1, Alpha1, Characters, 6, 95, Threshold)
    dev_display (Characters)
    gray_histo (Alpha1, Alpha1, AbsoluteHisto, RelativeHisto)
    disp_continue_message (WindowHandle, 'black', 'true')
    stop ()
    dev_display (Alpha1)
    dev_set_color ('green')
    gen_region_histo (Histo1, RelativeHisto, 255, 255, 1)
    

      

  • 相关阅读:
    在Java中如何优雅地判空
    软件可以流氓到什么程度?从卸载步骤就可以看出来!
    面试中常问的List去重问题,你都答对了吗?
    为什么程序员都不喜欢使用switch而使用if来做条件跳转
    那些年,我们一起卸载过的软件…
    趣图:当我捕获Bug的时候
    9个成功的微服务设计的基础知识
    5.1 包装类
    4.9 初始化块
    4.8 继承与组合
  • 原文地址:https://www.cnblogs.com/amosyang/p/8433584.html
Copyright © 2011-2022 走看看