Halcon clolor_pieces.hedv:分类器_颜色识别

本文介绍了使用Halcon库进行图像区域选择、对象分类和MLP神经网络训练的过程。从读取图片开始,通过dev_close_window()和dev_open_window()操作窗口,然后利用dev_display()展示图片并请求用户标记目标区域。接着,通过gen_empty_obj()创建样本对象,对多个颜色区域进行标注,训练一个多层感知器(MLP)分类器。最后,展示了测试阶段的图像识别和结果显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image, 'E:/03 CV(古)/Halcon/代码/糖豆/train.jpg')
Regions:=['黄','红','绿','橙','背景']
gen_empty_obj (Classes)#创建空对象,用以保存训练样本
for i := 1 to |Regions| by 1
    dev_display (Image)
    dev_display (Classes)
    disp_message (WindowHandle, '请选定指定区域:', 'window', 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)*此处可不使用union1
create_class_mlp (3,7, 5, 'softmax', 'normalization', 3, 42, MLPHandle)#如果是三通道彩色图像,那第一个参数可以设置3,第三个参数为输出参数个数即Class包含的颜色个数,除去背景色。第二个参数是第三个参数的2倍左右。
add_samples_image_class_mlp (Image, Classes, MLPHandle)#将训练样本Class 添加到网络中

disp_message (WindowHandle, 'Training...', 'window', 100, 12, 'black', 'false')
train_class_mlp (MLPHandle, 400, 0.5, 0.01, Error, ErrorLog)

*test识别
for i := 1 to 3 by 1
    read_image (Image1, 'E:/03 CV(古)/Halcon/代码/糖豆/test0'+i)
    classify_image_class_mlp (Image1, ClassRegions, MLPHandle, 0.5) #分类识别物体
    #显示
    for Index := 1 to 5 by 1
        dev_clear_window ()
        copy_obj (ClassRegions, ObjectsSelected, Index, 1)#选择其中一个
        dev_display (Image1)
        dev_display (ObjectsSelected)
        disp_message (WindowHandle, Regions[5-Index], 'window', 10, 10, 'black', 'true')
    endfor
endfor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值