当前位置: 首页 > news >正文

品牌手机网站开发深圳装饰企业前50强

品牌手机网站开发,深圳装饰企业前50强,百度指数预测,蚌埠市建设学校网站KNN#xff08;K-Nearest Neighbors#xff0c;K最近邻#xff09;算法是一种简单而有效的分类算法#xff0c;也可以用于图像识别。它的基本思想是通过计算样本之间的距离#xff0c;将待分类的样本归为其在训练集中最相近的K个样本所属的类别中最常见的类别 1. 准备工作…KNNK-Nearest NeighborsK最近邻算法是一种简单而有效的分类算法也可以用于图像识别。它的基本思想是通过计算样本之间的距离将待分类的样本归为其在训练集中最相近的K个样本所属的类别中最常见的类别 1. 准备工作 2. 图像预处理 3. 数据处理与分割 4. 标签准备 5. 训练与测试KNN模型 6.检验测试结果 7.我们可以输入自己的一些例子再来测试训练的如何。 1. 准备工作 首先我们需要一个图像数据集。 以此图像为例 该图像应当包含一个50x100的网格每个单元格中包含一个手写数字0-9所以总共有5000个数字样本如何将数据样本提取出来呢。 2. 图像预处理 我们将图像加载为灰度图像并进行分割 import numpy as np import cv2img cv2.imread(图片位置)#读取图片 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #图像灰度化cells [np.hsplit(row, 100) for row in np.vsplit(gray, 50)] # 将图像分割成50x100的网格 我们使用np.vsplit将图像按行分割成50个部分然后对每个部分使用np.hsplit按列分割成100个单元格。这样我们得到了一个包含5000个单元格的数组每个单元格中包含一个手写数字的图像。在调试过程中可以看到已经分割成功 我们可以查看是如何保存的 3. 数据处理与分割 接下来我们将图像数据整理成训练和测试数据 x np.array(cells) train x[:, :50] test x[:, 50:100]# 将图像数据展平以适应KNN输入 train_new train.reshape(-1, 400).astype(np.float32) test_new test.reshape(-1, 400).astype(np.float32)这里我们将每个数字图像展平成一个400维的向量20x20的图像。这些展平的向量作为KNN算法的输入特征 4. 标签准备 我们需要准备训练和测试标签以便模型可以学习和评估 k np.arange(10) labels np.repeat(k, 250) train_labels labels[:, np.newaxis] test_labels np.repeat(k, 250)[:, np.newaxis]在这里np.repeat(k, 250)生成了每个数字0-9出现250次的标签数组。每个训练和测试样本都有对应的标签。 5. 训练与测试KNN模型 我们使用OpenCV的KNN算法来训练和测试我们的模型 knn cv2.ml.KNearest_create()#创建训练 knn.train(train_new, cv2.ml.ROW_SAMPLE, train_labels)#进行训练 ret, result, neighbours, dist knn.findNearest(test_new, k5)#设置k值在这段代码中我们创建了一个KNN模型并用训练数据进行训练。之后使用findNearest方法来对测试数据进行预测 6.检验测试结果 print(result2) matches result test_labels correct np.count_nonzero(matches) accuracy correct * 100.0 / result.size print(accuracy)通过对比预测结果与实际标签我们可以计算模型的准确率。准确率表示模型正确分类的测试样本占总测试样本的比例 7.我们可以输入自己的一些例子再来测试训练的如何。 我们输入的图片格式要和训练数据的图片大小相同 img2 cv2.imread(你的图片位置)#读取图片 gray2 cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)#图像灰度化x2 np.array(gray2)#只输入一个数据所以可以直接处理 test2 x2[:,:] test2_new test2.reshape(-1,400).astype(np.float32)ret2, result2, neighbours2, dist2 knn.findNearest(test2_new, k5)#设置k值进行预测 print(result2)#输出结果 全代码 import numpy as np import cv2img cv2.imread(图片位置) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)img2 cv2.imread(你的图片位置) gray2 cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)cells [np.hsplit(row, 100) for row in np.vsplit(gray, 50)]x np.array(cells) x2 np.array(gray2)train x[:, :50] test x[:, 50:100] test2 x2[:,:]train_new train.reshape(-1, 400).astype(np.float32) test_new test.reshape(-1, 400).astype(np.float32) test2_new test2.reshape(-1,400).astype(np.float32)k np.arange(10) labels np.repeat(k, 250)train_labels labels[:, np.newaxis] test_labels np.repeat(k, 250)[:, np.newaxis]knn cv2.ml.KNearest_create() knn.train(train_new, cv2.ml.ROW_SAMPLE, train_labels) ret, result, neighbours, dist knn.findNearest(test_new, k5) ret2, result2, neighbours2, dist2 knn.findNearest(test2_new, k11)print(result2) matches result test_labels correct np.count_nonzero(matches) accuracy correct * 100.0 / result.size print(accuracy)我们可以设置不同的k值来是预测结果更加精确 总结 通过以上步骤我们使用OpenCV和KNN算法实现了一个简单的手写数字识别系统。尽管这个示例相对简单但它展示了如何从数据预处理、模型训练到性能评估的完整流程。在实际应用中我们可以进一步优化模型尝试更多先进的算法或使用更复杂的数据集以提升性能。
http://www.hkea.cn/news/14399223/

相关文章:

  • 在西部数码做的企业网站不能与阿里巴巴网站相连接联想电脑网站建设策划书
  • 昆明个人网站建设平台支付网站认证费用怎么做分录
  • 沈阳公司网站建设公司网站做百度推广需要交费吗
  • 歌曲网站源码做网站和APP需要注册公司吗
  • 浏览器网页版免费进入淘宝seo搜索引擎原理
  • 30天网站建设全程实录做查询网站费用
  • 简单设置网站首页阳泉建设局网站
  • 关于绿色环保网站的建设历程wordpress 代码规范
  • 第9类商标有网站开发河北助手app下载
  • 谁有人跟动物做的网站要怎么做网站推广
  • 淄博市沂源县城乡建设局网站网站策划需要什么
  • 集团品牌网站建设网站不备案会怎样
  • 毕设网站代做一般预算多少钱做网站什么的好
  • 做网站的背景怎么做国外浏览器app
  • 深圳市网站设江西中联建设集团有限公司网站
  • 专业做营销网站网络广告策划的流程顺序为
  • 网站标题字体大小个人网站视频建设
  • 网站建设总体规划包括怎样免费设计logo
  • 郑州网站设计收费大型社区网站开发文档
  • 56m做图片视频的网站是什么wordpress模板关系
  • 最传统的网站推广手段济南建设工程招标网
  • 黄梅那里有做网站的房地产营销门户网站开发
  • 网站建设怎么样工作软装设计师要学什么
  • 淘宝网站建设手机版wordpress 报名插件
  • 加强宣传阵地建设 高校 网站养生网站源码下载
  • 网站交易移动网络
  • 做交易网站需要用到的软件有哪些网站建设费用5万入账
  • 小猫mip网站建设wordpress错位
  • 关于建设网站的需求分析wordpress装修门户
  • 怎么查网站的域名备案价格linux 做网站用哪个版本