如何在mexopencv中保存svm文件

动机

因此,我要训练一个分类器,并且需要将分类器的结果保存在mexopencv中。

hello  = cv.SVM;
hello.save('foo.xml')

我的Matlab编译器由于分段错误而崩溃。据我所知,这应该是OpenCV的方式。还有其他方法可以保存通过SVMin训练的文件吗mexopencv还是与Matlab文件写入选项有关。谢谢。

安姆罗

实际上,这是OpenCV本身的错误,而不是mexopencv。您应该举报...

这是最小化C ++程序来重现该错误的方法:

#include "opencv2/opencv.hpp"
#include "opencv2/ml/ml.hpp"
using namespace cv;

int main()
{
    Ptr<SVM> svm = new SVM();
    svm->save("svm.xml");

    return 0;
}

在调试器下运行此命令,我找到了有问题的代码:

df_count = class_count > 1 ? class_count*(class_count-1)/2 : 1;
df = decision_func;

cvStartWriteStruct( fs, "decision_functions", CV_NODE_SEQ );
for( i = 0; i < df_count; i++ )
{
    int sv_count = df[i].sv_count;
    ...
}

此时,SVM模型是未经训练的,并且df是未初始化的指针。class_count等于0,但df_count设置为1,因此df[i](与i=0)导致访问冲突...

我认为可以将其固定为:

df_count = class_count > 1 ? class_count*(class_count-1)/2 : 1;
if (class_count == 0) df_count = 0;

在调试过程中更改df_count0,程序可以正常运行,并且我得到以下XML文件:

svm.xml

<?xml version="1.0"?>
<opencv_storage>
<my_svm type_id="opencv-ml-svm">
  <svm_type>C_SVC</svm_type>
  <kernel>
    <type>RBF</type>
    <gamma>1.</gamma>
  </kernel>
  <C>1.</C>
  <term_criteria>
    <epsilon>1.1920928955078125e-007</epsilon>
    <iterations>1000</iterations>
  </term_criteria>
  <var_all>0</var_all>
  <var_count>0</var_count>
  <sv_total>0</sv_total>
  <support_vectors></support_vectors>
  <decision_functions></decision_functions>
</my_svm>
</opencv_storage>

现在,您可以通过在将模型保存到文件之前先训练模型来避免该错误:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在mexopencv中保存svm文件

来自分类Dev

如何在mexopencv中读取avi文件

来自分类Dev

如何在Java中保存文件

来自分类Dev

如何在ENOENT IOexception中保存文件

来自分类Dev

如何在熊猫中保存DTA文件?

来自分类Dev

如何在vbs中保存xlsx文件?

来自分类Dev

如何在Android中保存图片文件?

来自分类Dev

如何在nodeJs中保存文件?

来自分类Dev

如何在猫鼬中保存文件

来自分类Dev

如何在 fastcoloredtextbox 中保存文件?

来自分类Dev

如何在 Electron 中保存大文件?

来自分类Dev

如何在模拟中保存或读取文件

来自分类Dev

JHipster如何在文件系统中保存文件?

来自分类Dev

如何在设置文件中保存对象列表?

来自分类Dev

如何在当前目录中保存文件?

来自分类Dev

如何在Python中的文件中保存两列数组

来自分类Dev

如何在txt文件中保存异常?

来自分类Dev

如何在Chrome应用中保存多个文件

来自分类Dev

如何在MATLAB中保存输出图像文件...?

来自分类Dev

如何在数据库中保存文件路径?

来自分类Dev

如何在Java文件中保存字符串

来自分类Dev

如何在sRGB颜色配置文件中保存图像

来自分类Dev

如何在IntelliJ 14中保存暂存文件

来自分类Dev

如何在任何平台的temp目录中保存文件?

来自分类Dev

如何在VB.NET中保存文件?

来自分类Dev

如何在python中保存修剪的wave文件?

来自分类Dev

如何在文件中保存字典(对象的键)然后阅读

来自分类Dev

如何在.net Core Worker服务中保存登录文件?

来自分类Dev

如何在当前目录(COSMOS)中保存文件