基于openmv的图像识别

通过参加全国电子设计大赛F题总结出openmv4的数字识别(其它版本暂时没试过,欢迎交流!)

openmv简介

OpenMV是一个开源,低成本,功能强大的机器视觉模块,以STM32F427CPU为核心,集成了OV7725摄像头芯片,在小巧的硬件模块上,用C语言高效地实现了核心机器视觉算法,提供Python编程接口 。同时 OpenMV也是一个可编程的摄像头,通过Python语言可实现你想要的逻辑。而且摄像头本身也内置了一些图像处理的算法,使用起来也更加的方便,仅需要写一些简单的Python代码,即可轻松的完成各种机器视觉相关的任务。

openmv4运行内存只有1MB,而openmv4plus运行内存有32MB。

一、打开OpenMV IDE软件

选择Cancel(不升级即可)!

二、openmv4的数字识别

openmv4的数字识别的基础是需要配置使用NCC模板匹配。通过NCC模板的匹配可把

需要识别的数字模板图片保存到SD卡中,然后可进行下一步的识别。

1、我们通过打开模板匹配的历程来直接打开代码使用

点击文件——示例——openmv——feature detection——template_matching.py

下面就是例程。

2、如果运行出现这个窗口那就说明你没有保存模板图片。

 这时我们就需要创建一个模板图片。

3、首先要打开一个helloworld历程文件

点击file——examples——01-basics——helloworld.py

下面就是helloworld的例程。

4、在helloworld历程文件中进行匹配0~9这样的数字

  对这些数字进行一一截取(打开摄像头,图像中出现数字之和关闭摄像头,在图像中截取数字,右键选择将图像选择保存到PC),用它们来作为我们的模板图片(此时图片格式后缀为bmp格式)。

在右边的Frame Buffer框中进行截取,注意:不要点Zoom,因为Zoom展示的是放大后的效果,在识别时可能会导致失帧。

 例如:本人截取的一张图片(目前后缀还是bmp)

注意:模板图片的格式一定要是pgm的格式!!!

BMP轉PGM轉換器。在线自由 — Convertio这个网站可以直接进行图片格式转换。

点击选择文件(刚刚截图的模板图片)

打开所选的图片,点击转换(注意是不是转换到PGM格式,如果不是请换到PGm格式)

转换完成之后点击下载即可,此时图片后缀为PGM格式。

5、将转换的数字图片(PGM)进行保存,一定要保存到OpenMV4的SD卡中,名称自定义

 6、把template.pgm改为你命名的模板图片(PGM)的名称

例如:我命名的为11

7、改完即可运行 

官方数字识别源代码,此代码为源代码,可在此基础上进行改动。

# Template Matching Example - Normalized Cross Correlation (NCC)
#
# This example shows off how to use the NCC feature of your OpenMV Cam to match
# image patches to parts of an image... expect for extremely controlled enviorments
# NCC is not all to useful.
#
# WARNING: NCC supports needs to be reworked! As of right now this feature needs
# a lot of work to be made into somethin useful. This script will reamin to show
# that the functionality exists, but, in its current state is inadequate.import time, sensor, image
from image import SEARCH_EX, SEARCH_DS# Reset sensor
sensor.reset()# Set sensor settings
sensor.set_contrast(1)
sensor.set_gainceiling(16)
# Max resolution for template matching with SEARCH_EX is QQVGA
sensor.set_framesize(sensor.QQVGA)
# You can set windowing to reduce the search image.
#sensor.set_windowing(((640-80)//2, (480-60)//2, 80, 60))
sensor.set_pixformat(sensor.GRAYSCALE)# Load template.
# Template should be a small (eg. 32x32 pixels) grayscale image.
template = image.Image("/11.pgm")clock = time.clock()# Run template matching
while (True):clock.tick()img = sensor.snapshot()# find_template(template, threshold, [roi, step, search])# ROI: The region of interest tuple (x, y, w, h).# Step: The loop step used (y+=step, x+=step) use a bigger step to make it faster.# Search is either image.SEARCH_EX for exhaustive search or image.SEARCH_DS for diamond search## Note1: ROI has to be smaller than the image and bigger than the template.# Note2: In diamond search, step and ROI are both ignored.r = img.find_template(template, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))if r:img.draw_rectangle(r)print(clock.fps())

如需数字1——9的代码请联系我!(本文如有错误请指出,欢迎交流!)

2021全国电设(F题)openmv的图像识别之数字识别相关推荐

  1. 2021全国电设(F题)灰度传感器——循迹红线

    基于灰度传感器的循迹(红色循迹) 通过参加全国电子设计大赛F题总结出识别红色线路的循迹方法--灰度传感器 灰度传感器的工作原理 灰度传感器利用不同颜色的检测面对光的反射程度不同,光敏电阻对不同检测面返 ...

  2. 视觉识别数字、十字路口和T字路口,巡线于一体的基于openmv的解决方案(2021年电赛f题)

    普通二本生(大二)没获奖,因为驱动方面和视觉协同问题没有做好(驱动方面跑太快,速度降不下来)只跑了最初级的,这个文章就是去记录一下我的成长过程吧. 目录 1.使用神经网络来进行识别 2.使用模板匹配来 ...

  3. 2021电赛F题视觉教程+代码免费开源

    2021电赛F题视觉教程+代码免费开源 最近好多要电赛题的源码,其他csdn营销号下载都需要会员或钱,正好最近课设又要做一遍电赛小车题,哥们先把代码开源了,饿死营销号 电赛宝藏链接: 四天三夜,那布满 ...

  4. 2021电赛F题(智能送药小车)参赛总结【视觉部分】

    2021电赛F题(智能送药小车)参赛总结[视觉部分] 前言 在2021年全国大学生电子设计竞赛中,我们小组做的是F题(智能送药小车).我在小组中主要负责小车视觉功能的实现,所以在本篇参赛总结中只会涉及 ...

  5. 2021电赛F题-智能送药小车-国一

    2021电赛F题-智能送药小车-国一 B站视频链接:https://www.bilibili.com/video/BV1u44y1e7qk/ (这大概是b站第一个双车视频吧,嘿嘿

  6. 5_竞赛无人机搭积木式编程——以2021年电赛G题植保无人机国奖标准完整复现为例学习

    竞赛无人机搭积木式编程 --以2021年电赛G题植保无人机国奖标准完整复现为例学习 首先我们需要了解下自动飞行任务执行过程几组关键变量的用法与实际作用效果: flight_subtask_cnt用于控 ...

  7. 2020电赛F题回顾——简易无接触温度测量与身份识别装置

    2020电赛F题回顾--简易无接触温度测量与身份识别装置 第一次参加电赛,已经大三了,这也有可能是我的最后一次,不禁感慨时间过得真快.在实验室一起奋斗的夜晚既辛苦又幸福,感谢陪伴在我身边一起做电赛的同 ...

  8. 立创EDA助力2021全国电赛数百万奖学金!

    持续助力电赛,100年!!! 全国竞赛是全国性的大学生学科竞赛活动,竞赛按照紧密结合教学实际,着重基础.注重前沿的原则开展,目的在于促进电子信息类专业和课程的建设,引导高等学校在教学中注重培养大学生的 ...

  9. 2021年电赛 E题 数字传输

    数字-模拟信号混合传输收发机(E题) 目录 题目 方案 工程文件 题目 (2) 实现数字信号传输. 首先键入4个0~9的一组数字,在发送端进行存储并显示,然后按下发送键对数字信号连续循环传输.在接收端 ...

最新文章

  1. 搭完环境,最后登录时提示“与数据库连接失败,请与管理员联系”
  2. Python中多个数组行合并及列合并的方法总结
  3. DevExpress v18.1新版亮点——WPF篇(五)
  4. app头像上传vue_Vue+Electron开发跨平台桌面应用实践
  5. 201621123031 《Java程序设计》第8周学习总结
  6. jmeter正则中常见的转义字符-笔记三
  7. 存储位置优化——把视图状态信息保存在服务端而非客户端
  8. 网络性能测试工具iperf的安装与使用
  9. 平面2R机器人的运动学/动力学建模实例
  10. 电动汽车动力系统整车仿真,具有双向DCDC变换器实现能量反馈
  11. “拼命”奔跑的社区团购
  12. 天龙八部手游服务器维护公告,-天龙八部手游-详情页-官方网站-天龙八部官方唯一正版3DMMORPG武侠手游...
  13. Windows10系统 ADMUI3无法删除
  14. Linux常用操作命令和命令行编辑快捷键
  15. 案例 | 巴别鸟为弘睿构建企业知识库
  16. 【Multisim仿真】差分比例放大电路
  17. 为何电动汽车没未来感?设计和生产线无根本性改变 | 行业
  18. 小白学习cartopy画地图的第六天
  19. 外贸在谷歌搜索客户,为什么搜索出来的都是同行?
  20. SpringBoot实现每天给对象发送情话

热门文章

  1. 深度学习简介--PPT
  2. 针对或者利用计算机网络实施,利用计算机实施财产犯罪定性问题研究
  3. 梁昌勇 软件工程_合肥工业大学管理学院_梁昌勇
  4. [CVE-2022-0847][Dirty Pipe]Linux内核权限提升漏洞
  5. 聚创卓跃:拼多多店铺的平台规则
  6. laravel 发邮件 qq配置
  7. STM32用一个定时器输出多路不同频率及占空比的PWM(输出比较模式)
  8. c语言适用于大型的 复杂的软件系统开发,c语言是什么
  9. cf-tool 简易使用教程
  10. 【干货】柔性电池的未来展望