Android OpenCV 3.2 SVM 调用

最近在android下,玩OpenCV,使用起来很简单。
目标:手写数字,使用SVM进行分类
代码主要来自下面这个项目:
github.com/wblgers/OpenCV_Android_Plus/tree/master/
这个代码是在真机上,利用JNI方式,以载入so文件的方式调用Opencv,而我用的是OpenCV Manager的方式,在仿真器调用,并且大家用的OpenCV的版本不同,调用的形式也不太一样,不过代码小改改就能使用
首先, 在著名Mnist数据集上训练,得到mnist.xml模型,保存为 res/raw/mnist.xml。这个文件上述工程已经提供了,直接拿来用

Created with Raphaël 2.2.0 开始 读取资源目录下的模型mnist.xml 将mnist写入储存器中 SVM加载mnist模型 等待手写图像 SVM预测,输出结果 yes no

工程主要部分为:主窗体+手写控件+已经训练好的SVM模型
OpenCV的版本有差异,原代码不能直接使用,修改后
声明SVM对象

    SVM mClassifier = null;
    File mSvmModel;

调用

	mClassifier = SVM.create();
	.....
	InputStream is = getResources().openRawResource(R.raw.mnist);
	//写入mSvmModel文件对象中
	.....
	//加载SVM模型
	mClassifier.load(mSvmModel.getAbsolutePath());

用上述的代码,调用的时候有问题,原因在于加载方式的不同
OpenCV3.2 下,load是一个静态函数,返回的是SVM对象,因此需要做以下修改

	mClassifier = SVM.load(mSvmModel.getAbsolutePath());

这样就能正常使用了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值