学习halcon之颜色识别

颜色识别与数字字母识别类似,只是多了一步需要将所要识别的颜色进行训练并创建分类器,当然在halcon中,对于数字字母已经有了相应的文件,所以不需要创建分类器这步。

在halcon中,颜色识别的步骤如下:

1、将所需要识别的颜色特征取出来

2、创建分类器并对这些特征进行训练

3、用其他图片进行简单测试

直接上代码:

dev_close_window ()
dev_open_window (0, 0, 557, 416, 'black', WindowHandle)
read_image (Img, 'C:/Users/Public/Documents/MVTec/HALCON-13.0/examples/images/color/color_pieces_00.png')
dev_display (Img)
dev_set_draw ('margin')
dev_set_color ('black')
*建立类
gen_empty_obj (Classes)
color:=['yellow','pink','blue','orange']
for i := 1 to |color| by 1
    disp_message (WindowHandle, ['circle the region of '+ color[i-1],'click the right button to comfirm'], 'window', 12, 12, 'black', 'true')
    draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
    gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
    concat_obj (Classes, Rectangle, Classes)
endfor

*创建/添加样本/训练分类器
create_class_mlp (3, 10, 4, 'softmax', 'normalization', 10, 42, MLPHandle)
add_samples_image_class_mlp (Img, Classes, MLPHandle)
train_class_mlp (MLPHandle, 400, 1, 0.01, Error, ErrorLog)
*测试
read_image (test, 'C:/Users/Public/Documents/MVTec/HALCON-13.0/examples/images/color/color_pieces_02.png')
dev_display (test)
classify_image_class_mlp (test, ClassRegions, MLPHandle, 0.5)
dev_set_color ('white')
for feature:=1 to 3 by 1
    copy_obj (ClassRegions, ObjectsSelected, feature, 1)
    connection (ObjectsSelected, ConnectedRegions)     
    select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1490.83, 5000)
    count_obj (SelectedRegions, Number)
    disp_message (WindowHandle, ['the number of '+color[feature-1]+':'+Number], 'window', 50+feature*50, 50, 'black', 'true')
endfor

所用的图片也是halcon里的图片,效果可以,如下:


当然我也将分类变为3种,即将背景颜色去掉,但这时在识别粉色时效果不行,识别不出来,也把自带的例程也试了一下,也是同样的情况,自己也不大明白原因。如果有去掉背景后训练识别成功并知道原因的麻烦告诉我下,谢谢。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值