首页 > 编程知识 正文

pca算法python实现,数字识别opencv

时间:2023-05-05 14:29:30 阅读:153094 作者:473

svm算法是使用超平面对数据进行分类的算法。

关于mnist数据的分析,读者可以自己从互联网下载相应的压缩文件,并用python自己制作分析代码。 这里主要研究knn算法,为了简化图,直接使用Keras的mnist手写数字分析模块。

此代码的执行环境如下:

python 3.6.8

opencv-python 4.4.0.46

opencv-contrib-python 4.4.0.46

下面的代码是使用svm算法的训练模型。

import c v2 importnumpyasnpfromkeras.datasetsimportmnistfromkerasimportutilsif _ name _=' _ main _ ' 3360 28 (660 ) test_labels(=Mnist.load_data ) #转换数据的形状,并转换train _ images=train _ images.reshape (train _ images.shape ) 255 test _ images=test _ images.reshape ) test _ images=test _ images.as type (' flope ) 1 ) train _ labels=train _ labels.as type (NP.int 32 ) test _ labels=test _ labels.as type (NP.int 32 ) train _ train e(-1, 1 )建立svm模型SVM=cv2.ml.SVM_create(#设定类型SVM_C_SVC表示分类SVM.settype(cv2.ml.SVM_c_SVC ),内核函数迭代结束条件SVM.settermcriteria ) (cv2.termcriteria_max_ITER,300, 1e-3 ) )训练SVM.train ) train train _ labels (在SVM.save (Mn ist _ SVM.XML ) )测试数据上计算精度)模型精度的测试结果, 元组的第一个值为数据1的结果test_pre=SVM.predict ) test_ret=test_ret.reshape(-1,) test _ labels=imml

生成的模型文件在10兆以上,这与knn算法相比模型文件小很多。

然后利用svm模型进行手写数字的测试识别。 代码如下所示。

import c v2 importnumpyasnpif _ name _=' _ main _ ' : #读取图像img=cv2.imread('shuzi.jpg ', 0 ) img_SW=img.copy(#数据类型从uint8到float32img=img.astype ) NP.float32 ) #图像形状从(28,28 )到) 784, )转换为img=img )加载图像数据归一化img=img/255 # ) svm模型SVM=cv2.ml.SVM _ load (Mn ist _ SVM.XML )并预测img _ pre

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。