应用halcon进行颜色识别

应用halcon进行颜色识别

代码如下:

* Image Acquisition 01: Code generated by Image Acquisition 01
open_framegrabber ('GigEVision', 0, 0, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '00214900caf1_DahengImavision_MER50014GC', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
grab_image_async (Image, AcqHandle, -1)
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width/4, Height/4, 'black', WindowHandle)
*定义一个字符数组赋给Regions
Regions:=['白','蓝','青','红','背景']
gen_empty_obj (Classes)

for i := 1 to |Regions| by 1
    dev_display (Image)
    dev_display (Classes)
    disp_message (WindowHandle, '请选定指定区域', 'windows', 12, 12, 'black', 'true')
   *等待窗口窗口画东西
    draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
    *形成一个区域,并显示给人看
    gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
    *选定的区域入栈
    concat_obj (Rectangle, Classes, Classes)
endfor
*将五个区域联合成一个区域
*union1 (Classes, RegionUnion)
*创建分离器。5类特征
 create_class_mlp (3, 7, 5, 'softmax', 'normalization', 3, 42, MLPHandle)
 *添加分类器句柄
add_samples_image_class_mlp (Image, Classes, MLPHandle)

disp_message (WindowHandle, '开始训练模型', 'window', 100, 12, 'black', 'false')
train_class_mlp (MLPHandle, 400, 0.5, 0.01, Error, ErrorLog)


while (true)
    grab_image_async (Image, AcqHandle, -1)
    * Image Acquisition 01: Do something
     classify_image_class_mlp (Image, ClassRegions, MLPHandle, 0.5)
     *计算存在几个区域,计算输入区域中连通域的个数
     count_obj (ClassRegions, Number)
     
     
     for Index := 1 to 4 by 1
         dev_clear_window ()
         copy_obj (ClassRegions, ObjectsSelected, Index, 1)
         dev_display (Image)
         dev_display (ObjectsSelected)
         disp_message (WindowHandle,Regions [4-Index], 'window', 10, 10, 'black', 'true')
         dev_display (ObjectsSelected)
         stop ()
     endfor
     
endwhile
close_framegrabber (AcqHandle)

相机获取的图像信息:

创建分离器,选取五类特征:

经过深度学习后,可以识别对图像区域进行识别:

背景区域:

红色区域:

蓝色区域:

当放入一支笔后,笔表面的不同的颜色区域有相应的显示:

原始图像:

笔的表面不同的颜色被划为不同的区域:

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值