HALCON示例程序class_2dim_sup.hdev使用二维像素分类对图像进行分割

HALCON示例程序class_2dim_sup.hdev使用二维像素分类对图像进行分割

示例程序源码(加注释)

  • 定义Interactive并赋值,0:固定框;1:手工绘制框。
    Interactive := 0

  • 读入图片
    read_image (Image, ‘ic’)

  • 关闭窗口
    dev_close_window ()

  • 获取图像尺寸
    get_image_size (Image, Width, Height)

  • 根据获得的图像尺寸打开窗口
    dev_open_window (0, 0, Width, Height, ‘white’, WindowID)

  • 将彩色图片分割成rgb三通道图片
    decompose3 (Image, Red, Green, Blue)

  • 显示
    dev_display (Red)
    dev_set_color (‘red’)

    if (Interactive)
    draw_region (Pattern, WindowID)
    else
    gen_rectangle1 (Pattern, 362, 276, 371, 298)
    endif

计算双通道灰度值图像的直方图

  • histo_2dim - 计算双通道灰度值图像的直方图。
  • 函数原型:histo_2dim(Regions,ImageCol,ImageRow:Histo2Dim ::)
    运算符histo_2dim计算区域内两个图像的二维直方图。通道1(ImageCol)的灰度值被解释为行索引,通道2(ImageRow)的灰度值被解释为列索引。输出图像Histo2Dim中的一个点P(g1,g2)处的灰度值表示灰度值组合(g1,g2)的频率,其中g1表示行索引,g2表示列索引。
    histo_2dim (Pattern, Red, Blue, Histo2Dim)
  • 阈值分割选取1-255的区域
    threshold (Histo2Dim, Features, 1, 255)
  • 使用半径为11.5的圆形进行闭运算
    closing_circle (Features, FeaturesClosed, 11.5)
  • 显示设置与显示
    dev_set_draw (‘fill’)
    dev_set_part (0, 0, 511, 511)
    dev_display (Red)
  • class_2dim_sup - 使用二维像素分类对图像进行分割,
  • 选取Red灰度值为g1范围,Blue灰度值为g2范围的点
    class_2dim_sup (Red, Blue, FeaturesClosed, RegionClass2Dim)

处理思路

这个例子是针对彩色图片,使用不同通道的特性进行区域选取与分割的例子。使用了双通道灰度值图像的直方图对图像进行分割,方法就是选取不同通道像素值相同的灰度范围,进而进行分割。

后记

大家有什么问题可以向我提问哈,我看到了第一时间回复,希望在学习的路上多多结交良师益友。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值