HALCON示例程序color_segmentation_pizza.hdev披萨肉饼识别。

HALCON示例程序color_segmentation_pizza.hdev披萨肉饼识别。

示例程序源码(加注释)

  • 关于显示类函数解释
    dev_update_off ()
    dev_close_window ()
    read_image (Image, ‘color/pizza_01’)
    get_image_size (Image, Width, Height)
    dev_open_window (0, 0, Width / 2, Height / 2, ‘black’, WindowHandle)
    set_display_font (WindowHandle, 16, ‘mono’, ‘true’, ‘false’)
    dev_set_part (0, 0, Height - 1, Width - 1)
    for I := 1 to 3 by 1
    read_image (Image, ‘color/pizza_’ + I$’.2’)
    decompose3 (Image, ImageR, ImageG, ImageB)
    • 将RGB图像装换到色度空间。trans_from_rgb介绍贴子
      trans_from_rgb (ImageR, ImageG, ImageB, Image_L, Image_A, Image_B, ‘cielab’)
    • 分割出披萨的区域
      threshold (Image_B, PizzaRaw, 148, 255)
      connection (PizzaRaw, ConnectedRegions1)
      select_shape_std (ConnectedRegions1, Pizza, ‘max_area’, 0)
    • 提取最外边的边界
      shape_trans (Pizza, PizzaFilled, ‘convex’)
      reduce_domain (Image_B, PizzaFilled, ImageReduced)
    • 提取肉饼区域
      threshold (ImageReduced, Region, 140, 146)
      connection (Region, ConnectedRegions)
      select_shape (ConnectedRegions, SelectedRegions, ‘area’, ‘and’, 30000, 1000000)
    • 先使用半径小的圆形元素进行闭运算,再使用半径大的圆形元素进行开运算。
      closing_circle (SelectedRegions, RegionClosing, 20.5)
      opening_circle (RegionClosing, RegionOpening, 85.5)
    • 显示结果
      dev_set_line_width (3)
      dev_display (Image)
      dev_set_color (‘green’)
      dev_set_draw (‘margin’)
      dev_display (RegionOpening)
      if (I < 3)
      disp_continue_message (WindowHandle, ‘black’, ‘true’)
      stop ()
      endif
      endfor

处理思路

这个例子将RGB图像转化到色度空间直接消除了披萨饼上馅料对识别的影响。

后记

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值