这一部分紧张展示一个分类的例子,基于所选的形状特色来分类金属件

Step1: 创建分类器

HALCON高级篇HALCON分类步骤

首先,一个分类器被创建。
这里,我们想运用MLP分类器,以是类型为MLP的一个分类器用create_class_mlp创建。
返回的句柄将被下面所有分类步骤所须要。

Step2: 添加演习样本到分类器

然后,演习图像,例如包含已知种别物体的图像,被研究。
每一张图像中包含数个属于同一类别的金属件。
对付特定图像的类的索引被存储在元组Classes中。
在这个案例中,9张图像是可行的(见下图)。
在前3张图像的物体属于种别0, 接下来3张图像中物体属于种别1,末了3张图像的物体属于种别2。

现在,每一张演习图像被用两个程序segment和add_samples去处理。

演习图像

程序segment用大略的blob剖析分割并分离包含在图像中的物体。

对付每一个区域,程序add_samples用程序get_features决定一个特色向量。
特色向量和已知种别索引建立了演习样本,其用算子add_sample_class_mlp添加到分类器中。

在程序get_features中被提取的特色是区域特色,特殊是区域的两个圆度和4个矩(用算子moments-region_central_invar)。

Step3:演习分类器

在添加了所有可行的样本后,演习器用train_class_mlp所演习,用clear_samples_class_mlp将样本从内存中移除。

Step4:分类新物体

现在,具有不知物体的图像被探索。
物体的分割和它们特色的提取利用和演习图像相同的程序(segment和get_features)来实现。
但是,这时一个特色向量的种别还不知道,必须用分类来决定。
这样,相对付程序add_samples,在程序classify中,被提取的特色向量被用来作为算子classify_class_mlp的输入,而不是用add_sample_class_mlp。
结果便是类的索引,其最适宜特定区域提取的特色向量。

对付结果的一个视觉查看,程序disp_obj_class用特定颜色(依赖区域所属的种别)展示了每一个区域。

根据它们的形状来分类金属件:(左)金属件的图像,(右)被分为3类的金属件(被用不同的灰度值所描述)

Step5:销毁分类器

在程序的末了,分类器被销毁