什么是组件掩码训练CvNormalBayesClassifier opencv

what is component mask in train CvNormalBayesClassifier opencv?

本文关键字:CvNormalBayesClassifier opencv 掩码 组件 什么      更新时间:2023-10-16

我正在使用普通贝叶斯分类器训练SIFT BOW描述符。我的训练数据有79行,每一行代表一个样本和500列。响应数据有79行和1列。varIdx和sampleIdx为0,update=true

CvNormalBayesClassifier classifier=new CvNormalBayesClassifier();CvMat =cvCreateMat(1,1,CV_8U);Double [] myarr1=new Double [1];myarr1 [0] = 0.0;val1.put (myarr1);CvMat =cvCreateMat(1,1,CV_8U);Double [] myarr2=new Double [1];myarr2 [0] = 0.0;val2.put (myarr2);分类器。训练(trainingdata, label,val1,val2,true);之前错误:

<>之前OpenCV错误:输入参数的大小不匹配(组件掩码应包含与输入变量总数一样多的元素)在cvPreprocessIndexArray, file .. . . . . OpenCV modulesmlsrcinner_functions.cpp,第426行java.lang.RuntimeException: ........ ..opencvmodulesmlsrcinner_functions.cpp:426:错误:(-209)组件掩码应包含与函数cvPreprocessIndexArray中输入变量总数相同的元素在com.googlecode.javacv.cpp.opencv_ml CvNormalBayesClassifier美元。火车(本地方法)com.cis.project.Recognition.main (Recognition.java: 74)之前

组件掩码是什么?

from the docs:

许多ML模型可以在选定的特征子集和/或训练集的选定样本子集上进行训练。为了方便起见,方法训练通常包括var_idx和sample_idx参数。前一个参数识别感兴趣的变量(特征),后一个参数识别感兴趣的样本。这两个向量都是整数(CV_32SC1)向量(基于0的索引列表)或活动变量/样本的8位(CV_8UC1)掩码。你可以传递NULL指针而不是任何一个参数,这意味着所有的变量/样本都用于训练。

所以,要么传递一个1d整数或uchar Mat与标签/样本相同的长度,用0和1填充作为掩码,或者传递一个空对象(或空指针,取决于你的api)。

相关文章:
  • 没有找到相关文章