开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 9436|回复: 0
收起左侧

[技术专题] 训练K近邻模型

[复制链接]
结帖率:87% (79/91)
发表于 2022-9-24 17:08:39 | 显示全部楼层 |阅读模式   江苏省苏州市
本帖最后由 z13228604287 于 2022-9-24 20:40 编辑

digits.png

  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
k近邻k近邻类 
数据训练数据类 
原图多维矩阵类 
灰度图多维矩阵类 
排列结果多维矩阵类 
标签多维矩阵类 
行索引整数型 
行图范围矩形2i类 
行计次整数型 
类索引整数型 
单图片Y坐标整数型 
列_计次整数型 
单图片X坐标整数型 
单图片多维矩阵类 
X_计次整数型 
Y_计次整数型 
图压缩行数据多维矩阵类 
原图 = 视觉_图像解码 ( #模板图片, #读图_彩色 )
视觉_颜色空间转换 (原图, 灰度图, #颜色_BGR转GRAY, 0)
' 分割为5000个
排列结果 = 矩阵 (5000, 400, #Cv无符号字节型_单通道, 0)
标签 = 矩阵 (5000, 1, #Cv无符号字节型_单通道, 0)
' 高1 宽 20*20=400
行图范围.高度 = 1
行图范围.宽度 = 400
' 从图像中分割出20×20的图像作为独立数字图像
' 行计次 50=原图高/20
判断循环首 (行计次 < 50)
' 5行1个类   计算类索引
类索引 = 行计次 ÷ 5
' 单图片高为20  计算每个图片Y坐标
单图片Y坐标 = 行计次 × 20
' 列计次 100=原图宽/20
判断循环首 (列_计次 < 100)
' 单图片宽为20  计算每个图片X坐标
单图片X坐标 = 列_计次 × 20
' 存放提取到的单图片
单图片.初始化 (20, 20, #Cv无符号字节型_单通道, 标量 (0))
' 从大图片中,把20*20单图片抠出来
' X_计次 单图片宽
判断循环首 (X_计次 < 20)
' Y_计次 单图片高
判断循环首 (Y_计次 < 20)
' 灰度图每个像素点只复制到创建好的20*20单图片中实现抠图
单图片.置元素 (X_计次, Y_计次, 灰度图.取元素 (X_计次 + 单图片Y坐标, Y_计次 + 单图片X坐标))
Y_计次 = Y_计次 + 1
判断循环尾 ()
' 计次结束置0 准备下次循环
Y_计次 = 0
X_计次 = X_计次 + 1
判断循环尾 ()
' 计次结束置0 准备下次循环
X_计次 = 0
' 将二维图像数据转成1行数据  数据长度20*20 =400
图压缩行数据 = 单图片.重塑 (1, 1)
视觉_控制台输出 (“提取第%D个数据\n”, 行索引 + 1)
行图范围.顶边 = 行索引
' 添加到总数据中
图压缩行数据.复制 (排列结果.感兴区域 (行图范围), )
' 记录每个图像对应的数字标签
标签.置元素 (行索引, 0, 类索引)
行索引 = 行索引 + 1
列_计次 = 列_计次 + 1
判断循环尾 ()
列_计次 = 0
行计次 = 行计次 + 1
判断循环尾 ()
行计次 = 0
视觉_图像写 (“所有数据按行排列结果.png”, 排列结果, )
视觉_图像写 (“标签.png”, 标签, )
' 加载训练数据集
排列结果.转换到 (排列结果, #Cv小数型_单通道, 1, 0)
标签.转换到 (标签, #Cv整数型_单通道, 1, 0)
数据.创建训练数据 (排列结果, #样本_行, 标签, , , , )
' 创建K近邻类
k近邻.设置K值 (5)  ' 每个类别拿出5个数据
' K值过小:k值小,特征空间被划分为更多子空间,整体模型变复杂,容易发生过拟合,k值越小,选择的范围就比较小,训练的时候命中率较高,近似误差小,而用测试集的时候就容易出错,估计误差大,容易过拟合。
' K值过大:无论输入,都将简单的预测它属于训练实例中最多的类
k近邻.分类 ()  ' 进行分类
' 训练数据
k近邻.训练 (数据, 0)
' 保存训练结果
k近邻.保存 (“knn_model.yml”)
返回 (0)  ' 可以根据您的需要返回任意数值



i支持库列表   支持库注释   
OpenCV(未知支持库)


您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表