代码来源 https://github.com/mbeyeler/opencv-machine-learning/blob/master/notebooks/06.01-Implementing-Your-First-Support-Vector-Machine.ipynb

from sklearn import datasets
import cv2
import matplotlib.pyplot as plt
import numpy as np
from sklearn import model_selection as ms
from sklearn import metricsX, y = datasets.make_classification(n_samples=100, n_features=2,n_redundant=0, n_classes=2,random_state=7816)plt.style.use('ggplot')
plt.set_cmap('jet')plt.figure(figsize=(10, 6))
plt.scatter(X[:, 0], X[:, 1], c=y, s=100)
plt.xlabel('x values')
plt.ylabel('y values')X = X.astype(np.float32)
y = y * 2 - 1X_train, X_test, y_train, y_test = ms.train_test_split(X, y, test_size=0.2, random_state=42
)def plot_decision_boundary(svm, X_test, y_test):# create a mesh to plot inh = 0.02  # step size in meshx_min, x_max = X_test[:, 0].min() - 1, X_test[:, 0].max() + 1y_min, y_max = X_test[:, 1].min() - 1, X_test[:, 1].max() + 1xx, yy = np.meshgrid(np.arange(x_min, x_max, h),np.arange(y_min, y_max, h))X_hypo = np.c_[xx.ravel().astype(np.float32),yy.ravel().astype(np.float32)]_, zz = svm.predict(X_hypo)zz = zz.reshape(xx.shape)plt.contourf(xx, yy, zz, cmap=plt.cm.coolwarm, alpha=0.8)plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, s=200)kernels = [cv2.ml.SVM_LINEAR, cv2.ml.SVM_INTER, cv2.ml.SVM_SIGMOID, cv2.ml.SVM_RBF]plt.figure(figsize=(14, 8))
for idx, kernel in enumerate(kernels):svm = cv2.ml.SVM_create()svm.setKernel(kernel)svm.train(X_train, cv2.ml.ROW_SAMPLE, y_train)_, y_pred = svm.predict(X_test)plt.subplot(2, 2, idx + 1)plot_decision_boundary(svm, X_test, y_test)plt.title('accuracy = %.2f' % metrics.accuracy_score(y_test, y_pred))
plt.show()

结果如下:

使用OpenCV进行SVM分类demo相关推荐

  1. opencv C++ SVM模型训练与分类实现

    最近想学习一下分类算法的内容,恰好opencv有SVM的函数,故先从这个下手.找了许多资料,发现要么是opencv2.3的,要么就没有具体实现代码,学习还是把代码与原理一起结合来看比较好. 其中,我主 ...

  2. C3D:视频动作分类demo实现

    C3D:视频动作分类demo实现 C3D这个网络是来自于learning Spatiotemporal feature with 3DConvolutional Networks这篇文章,我也对这篇文 ...

  3. 用OpenCV的SVM实现简单的手势识别(切水果)[附源码]

    基于HOG特征的SVM分类器实现 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别.分类.以及回归分析. 方向梯度直方图(H ...

  4. 【全解】基于OpenCv的SVM实现车牌检测与识别

    都说深度学习的出现极力地打压着传统机器学习算法的地位,作为一个二刷机器学习经典算法的小伙伴告诉你:还真多半是这样,咳,毕竟还是差距较大,深度学习处理真实世界多维度的问题更权威!不过,有的事情还是机器学 ...

  5. OpenCV支持向量机SVM简介

    OpenCV支持向量机SVM简介 支持向量机SVM简介 目标 什么是SVM? 最佳超平面如何计算? 源代码 解释 设置训练数据 设置SVM的参数 由SVM分类的区域 支持向量 结果 支持向量机SVM简 ...

  6. 机器学习分类器——案例(opencv sklearn svm ann)

    机器学习分类器--案例(opencv sklearn svm ann python) ps:最近师姐给我们留了一个任务,记录一下从一开始的什么都不懂到现在把任务做出来,并从中学习到的东西吧.... 语 ...

  7. 基于OpenCV的 SVM算法实现数字识别(四)---代码实现

    三.基于SVM算法实现手写数字识别 作为一个工科生,而非数学专业的学生,我们研究一个算法,是要将它用于实际领域的.下面给出基于OpenCV3.0的SVM算法手写数字识别程序源码(参考http://bl ...

  8. LBP特征的实现及LBP+SVM分类

    前言 LBP这篇博客发表了有一年多的时间了,当时是为了研究生毕业论文实验而写的,后来稍微总结了一下写了这篇博客,一年多时间里,大家提了一些宝贵的修改意见,这两天将代码重构了一下,结构更加简洁清晰,速度 ...

  9. opencv c++ svm分类器 初学

    c++ 初学者 + opencv初学者 写了一个简单的svm分类器,由于有很多不是很了解,所以代码注释得比较详细 svm 直接上代码吧 大家将就看 #include "pch.h" ...

最新文章

  1. leetcode 454 四数相加
  2. 彩色RGB图像转为灰度图像
  3. 程序员面试题精选100题(13)-第一个只出现一次的字符[算法]
  4. gridview汇出EXCEL (ExportGridViewToExcel(dt, HttpContext.Current.Response);)
  5. 不使用加减乘除符号计算加法
  6. 用于单片机的几种C语言算法
  7. python执行过程打印,如何在pytest运行过程中看到正常的打印输出?
  8. mysql还要mysqldump的备份文件到指定数据库
  9. java 中缀算术表达式转换成后缀表达式_求Java堆栈,将中缀算术表达式转换成后缀表达式。...
  10. laravel常用命令整理
  11. 51单片机点亮数码管
  12. jquery的DOM节点操作(创建和插入元素节点)
  13. Linux 文件操作
  14. 设置谷歌浏览器和Edge浏览器为黑色背景
  15. 30种SQL查询语句优化方法
  16. 空间参考---墨卡托投影、高斯-克吕格投影、UTM投影的异同
  17. php 过滤微信符号昵称,PHP处理微信昵称特殊符号过滤方法
  18. 寻找故障检测相关论文的期刊
  19. python如何检验显著性差异_Python中如何计算Pearson相关性和显著性?
  20. [1-1] 把时间当做朋友(李笑来)Chapter 1 【心智的力量】 摘录

热门文章

  1. .net平台性能很不错的轻型ORM类Dapper(转)
  2. 取消Eclipse等号、分号、空格代码自动补全
  3. CCF - 201409-3 - 字符串匹配
  4. 【转】Maven Jetty 插件的问题(css/js等目录死锁)的解决
  5. 修改属性使按钮处于无验证状态
  6. 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等
  7. 近来工作和面试一些人的感受(原)
  8. matlab 2010无法运行程序,matalb r2010a安装后打开出现一系列警告,无法运行,哪位大神帮...
  9. OpenCV+python:直方图的概念及绘制(Histogram)
  10. Winograd,GEMM算法综述(CNN中高效卷积实现)(上)