classify_image_class_svmT_classify_image_class_svmClassifyImageClassSvmClassifyImageClassSvmclassify_image_class_svm分类图像类支持向量机(算子)

名称

classify_image_class_svmT_classify_image_class_svmClassifyImageClassSvmClassifyImageClassSvmclassify_image_class_svm — 使用支持向量机对图像进行分类。

签名

classify_image_class_svm(Image : ClassRegions : SVMHandle : )

Herror T_classify_image_class_svm(const Hobject Image, Hobject* ClassRegions, const Htuple SVMHandle)

void ClassifyImageClassSvm(const HObject& Image, HObject* ClassRegions, const HTuple& SVMHandle)

HRegion HImage::ClassifyImageClassSvm(const HClassSvm& SVMHandle) const

HRegion HClassSvm::ClassifyImageClassSvm(const HImage& Image) const

static void HOperatorSet.ClassifyImageClassSvm(HObject image, out HObject classRegions, HTuple SVMHandle)

HRegion HImage.ClassifyImageClassSvm(HClassSvm SVMHandle)

HRegion HClassSvm.ClassifyImageClassSvm(HImage image)

def classify_image_class_svm(image: HObject, svmhandle: HHandle) -> HObject

描述

classify_image_class_svmclassify_image_class_svmClassifyImageClassSvmClassifyImageClassSvmClassifyImageClassSvmclassify_image_class_svm 使用支持向量机(SVM)SVMHandleSVMHandleSVMHandleSVMHandleSVMHandlesvmhandle 对多通道图像 ImageImageImageImageimageimage 执行像素分类。在调用 classify_image_class_svmclassify_image_class_svmClassifyImageClassSvmClassifyImageClassSvmClassifyImageClassSvmclassify_image_class_svm 之前,必须使用 train_class_svmtrain_class_svmTrainClassSvmTrainClassSvmTrainClassSvmtrain_class_svm 对 SVM 进行训练。图像 ImageImageImageImageimageimage 必须具有 create_class_svmcreate_class_svmCreateClassSvmCreateClassSvmCreateClassSvmcreate_class_svm 中指定的 NumFeaturesNumFeaturesNumFeaturesNumFeaturesnumFeaturesnum_features 个通道。输出时,ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions 将包含 NumClassesNumClassesNumClassesNumClassesnumClassesnum_classes 个区域作为分类结果。请注意,ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions 中返回的区域顺序与 add_samples_image_class_svmadd_samples_image_class_svmAddSamplesImageClassSvmAddSamplesImageClassSvmAddSamplesImageClassSvmadd_samples_image_class_svm 中训练区域定义的类顺序相对应。

为防止 SVM 将特征空间中超出训练数据凸包范围的像素分配到某个类别,在许多情况下,通过使用 add_samples_image_class_svmadd_samples_image_class_svmAddSamplesImageClassSvmAddSamplesImageClassSvmAddSamplesImageClassSvmadd_samples_image_class_svm 添加拒绝类样本,并借助 train_class_svmtrain_class_svmTrainClassSvmTrainClassSvmTrainClassSvmtrain_class_svm 重新训练 SVM,明确训练一个拒绝类会很有帮助。

显式定义拒绝类的替代方案是采用 'novelty-detection'"novelty-detection""novelty-detection""novelty-detection""novelty-detection""novelty-detection" 模式的 SVM。具体实现请参阅 create_class_svmcreate_class_svmCreateClassSvmCreateClassSvmCreateClassSvmcreate_class_svmadd_samples_image_class_svmadd_samples_image_class_svmAddSamplesImageClassSvmAddSamplesImageClassSvmAddSamplesImageClassSvmadd_samples_image_class_svm 中的说明。

执行信息

参数

ImageImageImageImageimageimage (输入对象)  (multichannel-)image objectHImageHObjectHImageHobject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)

输入图像。

ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions (输出对象)  region-array objectHRegionHObjectHRegionHobject *

分割的类别。

SVMHandleSVMHandleSVMHandleSVMHandleSVMHandlesvmhandle (输入控制)  class_svm HClassSvm, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

SVM 句柄。

示例(HDevelop)

read_image (Image, 'ic')
gen_rectangle1 (Board, 20, 270, 160, 420)
gen_rectangle1 (Capacitor, 359, 263, 371, 302)
gen_rectangle1 (Resistor, 200, 252, 290, 256)
gen_rectangle1 (IC, 180, 135, 216, 165)
concat_obj (Board, Capacitor, Classes)
concat_obj (Classes, Resistor, Classes)
concat_obj (Classes, IC, Classes)
create_class_svm (3, 'rbf', 0.01, 0.01, 4, 'one-versus-all', \
                  'normalization', 3, SVMHandle)
add_samples_image_class_svm (Image, Classes, SVMHandle)
train_class_svm (SVMHandle, 0.001, 'default')
reduce_class_svm (SVMHandle, 'bottom_up', 2, 0.01, SVMHandleReduced)
classify_image_class_svm (Image, ClassRegions, SVMHandleReduced)
dev_display (ClassRegions)

结果

如果参数有效,算子 classify_image_class_svmclassify_image_class_svmClassifyImageClassSvmClassifyImageClassSvmClassifyImageClassSvmclassify_image_class_svm 返回值 2 (H_MSG_TRUE)。如有必要,则抛出异常。

可能的前趋

train_class_svmtrain_class_svmTrainClassSvmTrainClassSvmTrainClassSvmtrain_class_svm, read_class_svmread_class_svmReadClassSvmReadClassSvmReadClassSvmread_class_svm, reduce_class_svmreduce_class_svmReduceClassSvmReduceClassSvmReduceClassSvmreduce_class_svm

替代

classify_image_class_gmmclassify_image_class_gmmClassifyImageClassGmmClassifyImageClassGmmClassifyImageClassGmmclassify_image_class_gmm, classify_image_class_knnclassify_image_class_knnClassifyImageClassKnnClassifyImageClassKnnClassifyImageClassKnnclassify_image_class_knn, classify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlp, classify_image_class_lutclassify_image_class_lutClassifyImageClassLutClassifyImageClassLutClassifyImageClassLutclassify_image_class_lut, class_ndim_normclass_ndim_normClassNdimNormClassNdimNormClassNdimNormclass_ndim_norm, class_2dim_supclass_2dim_supClass2dimSupClass2dimSupClass2dimSupclass_2dim_sup

另见

add_samples_image_class_svmadd_samples_image_class_svmAddSamplesImageClassSvmAddSamplesImageClassSvmAddSamplesImageClassSvmadd_samples_image_class_svm, create_class_svmcreate_class_svmCreateClassSvmCreateClassSvmCreateClassSvmcreate_class_svm

模块

基础