广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于OpenMV的图像识别之数字识别功能
  • 422
分享到

基于OpenMV的图像识别之数字识别功能

2024-04-02 19:04:59 422人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录基于OpenMV的图像识别一、数字识别基于OpenMV的图像识别 OpenMV简介 什么是OpenMV OpenMV是由美国克里斯团队基于Micropython发起的开源机器视

基于OpenMV的图像识别

OpenMV简介

什么是OpenMV

OpenMV是由美国克里斯团队基于Micropython发起的开源机器视觉项目,目的是创建低成本,可扩展,使用Python驱动的机器视觉模块。OpenMV搭载了MicroPython解释器,使其可以在嵌入式端进行python开发,关于MicroPython可以参照我之前的博客专栏:MicroPython. OpenMV基于32位,ARM Cortex-M7内核的OpenMV-H7, 并结合各种摄像头,可以进行多种机器视觉应用的实现,比如人脸检测,物体分类等。

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

在打开OpenMV摄像头链接电脑时,会弹出让你升级的窗口

这时切忌一定要选择Cancel键,

不能选择升级!!!

不能选择升级!!!

不能选择升级!!!

在这里插入图片描述

然后在进行下一步的操作

OpenMV中文入门视频教程

一、数字识别

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

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

1、可以通过打开模板匹配的历程来直接打开代码进行使用

在这里插入图片描述

在这里插入图片描述

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

所以这时就需要创建一个模板图片:创建模板图片的详细视频教程

创建一个模板图片首先要打开一个helloworld历程文件

在这里插入图片描述

在这里插入图片描述

然后在helloworld历程文件中进行匹配0~9这样的基本数字,对这些数字进

行一一截取,用它们来作为我们的模板图片。

在右边的Frame Buffer框中进行截取,注意:不要点Zoom,因为Zoom展示

的是放大后的效果,在识别时可能会导致失帧。

然后点击左键选出一个框(如图所示)

在这里插入图片描述

选完框后点击右键选择Save Image selection to PC

在这里插入图片描述

最后把截取的数字图片进行保存,一定要保存到OpenMV的SD卡中,保存的文件名可自己

定义

在这里插入图片描述

3、把template.pgm改为你创建的模板图片的名称

在这里插入图片描述

(注意:模板图片的格式一定要是pgm的格式,转换格式可以在

https://convertio.co/zh/bmp-pgm/网站直接进行转换)

4、改完之后就可以运行

下面展示一些 有关数字识别的代码。

此代码为源代码,可根据自己的需求在上面进行改动。

代码来源:数字识别代码,可直接引用并修改


# 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.
template8 = image.Image("/8.pgm")
template9 = image.Image("/9.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 8= img.find_template(template8, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))
    if r8:
        img.draw_rectangle(r8)
   r 9= img.find_template(template9, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))
    if r9:
        img.draw_rectangle(r9)

    print(clock.fps())

运行的结果如图所示

在这里插入图片描述

到此这篇关于基于OpenMV的图像识别之数字识别的文章就介绍到这了,更多相关OpenMV图像识别内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 基于OpenMV的图像识别之数字识别功能

本文链接: https://www.lsjlt.com/news/156528.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于OpenMV的图像识别之数字识别功能
    目录基于OpenMV的图像识别一、数字识别基于OpenMV的图像识别 OpenMV简介 什么是OpenMV OpenMV是由美国克里斯团队基于MicroPython发起的开源机器视...
    99+
    2022-11-12
  • 基于OpenMV如何实现数字识别功能
    这篇文章主要介绍基于OpenMV如何实现数字识别功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!基于OpenMV的图像识别OpenMV简介什么是OpenMVOpenMV是由美国克里斯团队基于MicroPython发...
    99+
    2023-06-25
  • Pytorch实现图像识别之数字识别(附详细注释)
    使用了两个卷积层加上两个全连接层实现 本来打算从头手撕的,但是调试太耗时间了,改天有时间在从头写一份 详细过程看代码注释,参考了下一个博主的文章,但是链接没注意关了找不到了,博主看到...
    99+
    2022-11-12
  • 基于Python实现图像文字识别OCR工具
    目录引言功能列表OCR部分界面部分软件代码参考链接引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作、生活中常常会用到,比如票据、漫画、扫描件、照片的文本提取。 博主基于...
    99+
    2022-11-12
  • 数字识别之图像转为二进制数据
    数字识别是人工智能的一个应用 现在来实现如何将一个图片数字转为二进制的数据,并保存到为本中 图片是32x32的一个白底黑字的png图片 使用PIL模块获取像素,进行比对 存储数字二进制文件,方便后续训练数据使用 代码在github托管...
    99+
    2023-01-31
    图像 数字 二进制数
  • python基于OpenCV模板匹配识别图片中的数字
    目录前言程序目标思路讲解代码讲解完整代码总结前言 本博客主要实现利用OpenCV的模板匹配识别图像中的数字,然后把识别出来的数字输出到txt文件中,如果识别失败则输出“读取失败”。...
    99+
    2022-11-12
  • 基于Python的人脸识别功能怎么实现
    这篇文章主要介绍“基于Python的人脸识别功能怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python的人脸识别功能怎么实现”文章能帮助大家解决问题。一、 人脸检测人脸检测是指从图像...
    99+
    2023-07-05
  • 如何基于opencv实现简单的数字识别
    目录前言要解决的问题解决问题的思路总结前言 由于自己学识尚浅,不能用python深度学习来识别这里的数字,所以就完全采用opencv来识别数字,然后在这里分享、记录一下自己在学习过程...
    99+
    2022-11-12
  • python如何基于OpenCV模板匹配识别图片中的数字
    小编给大家分享一下python如何基于OpenCV模板匹配识别图片中的数字,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!程序目标单个数字模板:(这些单个模板是我自...
    99+
    2023-06-14
  • 基于opencv实现视频中的颜色识别功能
    目录颜色识别的原理opencv中的颜色模型颜色识别的实现(c++)颜色识别的原理 opencv中的颜色模型 RGB RGB具有三个通道其,分别表示红色通道®,绿色通道(G),...
    99+
    2022-11-13
  • 视觉识别数字、十字路口和T字路口,巡线于一体的基于openmv的解决方案(2021年电赛f题)
    普通二本生(大二)没获奖,因为驱动方面和视觉协同问题没有做好(驱动方面跑太快,速度降不下来)只跑了最初级的,这个文章就是去记录一下我的成长过程吧。 目录 1.使用神经网络来进行识别2.使用模板...
    99+
    2023-09-07
    计算机视觉 python
  • 基于CNN的MINIST手写数字识别项目代码以及原理详解
    文章目录 项目简介项目下载地址项目开发软件环境项目开发硬件环境前言一、数据加载的作用二、Pytorch进行数据加载所需工具2.1 Dataset2.2 Dataloader2.3 Torchv...
    99+
    2023-08-31
    cnn python 深度学习 手写数字识别 MINIST
  • 用PyTorch构建基于卷积神经网络的手写数字识别模型
    本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052 目录 一、MINST数据集介绍与分析 二、卷积神经网络 三、基于卷积神经网络的手写数字识别 一、MINST数据集...
    99+
    2023-09-06
    python 机器学习 人工智能 深度学习
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作