OpenMV(四)--STM32实现特征检测

2023-11-10

OpenMV(一)–基础介绍与硬件架构
OpenMV(二)–IDE安装与固件下载
OpenMV(三)–实时获取摄像头图片

前言

        本专栏基于以STM32H743为MCU的OpenMV-H7基板,结合OV7725卷帘快门摄像头进行相关机器视觉应用的开发。特征检测是机器视觉的基础,要做的内容包括边缘检测、各种形状识别、特征点识别等。特征检测是基于摄像头获取的图片进行的,在进行特征检测之间,我们需要了解如果在获取的图像上画标记。

        OpenMV已经将图片处理封装成各类模块供我们使用:

 

 

 

 

1. 边缘检测

        边缘检测就是轮廓检测,本节基于OpenMV官方源码edges.py来完成实时轮廓提取。

1.1 构造函数

        OpenMV的库集成度非常高,只需要一个函数就可以进行图片的边缘检测。

 

 1.2 源码分析

"""
实时特征检测例程:使用canny特征检测算法
"""
# 导入相应的库
import sensor, image, time

# 初始化摄像头
sensor.reset()

# 设置采集到照片的格式:灰色图像
sensor.set_pixformat(sensor.GRAYSCALE)

# 设置采集到照片的大小: 320 * 240
sensor.set_framesize(sensor.QVGA)

# 等待一段时间2s,等摄像头设置好
sensor.skip_frames(time = 2000)

# 设定摄像头增益上限
sensor.set_gainceiling(8)

# 创建一个时钟来计算摄像头每秒采集的帧数FPS
clock = time.clock()

# 实时显示摄像头拍摄的照片
while(True):
	# 更新FPS时钟
	clock.tick()
	
	# 拍摄图片并返回img
	img = sensor.snapshot()

	# 使用canny边缘检测
	img.find_edges(image.EDGE_CANNY, threshold = (50, 80))

	# 串口打印FPS参数
	print(clock.fps())

        我们将板子连接到OpenMV IDE, 新建文件,并将上述代码copy进去,点击左下角的绿色按钮,我们就可以看到IDE右边的窗口在实时显示提取到的边缘特征图片:

在这里插入图片描述

        线段识别,直线识别与边缘识别原理近似,只是调用的函数不同,具体操作可以参考官方提供的源码。 

2. 圆形识别

2.1 构造函数

        本节的目标是识别摄像头采集图像中的圆形并画出来。构造函数如下:


————————————————
版权声明:本文为CSDN博主「爱吃骨头的猫、」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42580947/article/details/105812182


————————————————
版权声明:本文为CSDN博主「爱吃骨头的猫、」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42580947/article/details/105812182


————————————————
版权声明:本文为CSDN博主「爱吃骨头的猫、」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42580947/article/details/105812182

(2条消息) OpenMV(四)--STM32实现特征检测_魔法师の屋子★↓☆-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenMV(四)--STM32实现特征检测 的相关文章

  • Linux下进程与多线程之间的共享资源

    在Linux 下 程序或可执行文件是一个静态的实体 它只是一组指令的集合 没有执行的含义 进程是一个动态的实体 有自己的生命周期 线程是操作系统进城调度器可以执行的最小执行单元 同一个进程中的各个线程都有自己独立的线程ID 用来标识线程 如
  • 使用jsPlumb制作流程图设计器

    jsPlumb是一个比较强大的绘图组件 它提供了一种方法 主要用于连接网页上的元素 在现代浏览器中 它使用SVG或者Canvas技术 而对于IE8以下 含IE8 的古董浏览器 则使用VML技术 项目主页 http jsplumbtoolki

随机推荐

  • PCL 常用小知识

    目录 零 保存点云 一 时间计算 二 已知需要保存点的索引 从原点云中拷贝点到新点云 三 删除无效点 四 pcl PointCloud Ptr和pcl PointCloud的两个类相互转换 五 计算点云中心点 六 将vector型索引转换成
  • scikit-learn 逻辑回归--调参

    代码笔记 from sklearn linear model import LogisticRegression as LR from sklearn datasets import load breast cancer import nu
  • CTFshow web15

    ctf show 萌新模块 web15关 这一关是代码执行漏洞 需要灵活的运用PHP的命令执行函数 在上一关的基础上又过滤了 gt 关键字 看起来已经没啥思路了 但仔细一看 它居然取消了对分号 的过滤 这样一来就好办了 继续上一关的曲线救国
  • IDEA中打jar包的方式

    在讲这两种方式之前 我们先来说明一下什么是java中的jar文件 jar Java Archive File 翻译过来就是java的档案文件 它其实也类似于我们windows下的zip文件 唯一的区别就是在 JAR 文件的内容中 包含了一个
  • opencv学习--图像处理基础

    将图片处理为灰度图 import os import re import cv2 from PIL import Image import numpy as np import matplotlib pylab as pylab img c
  • css公共样式总结(持续总结)

    flex display flex align center align items center justify between justify content space between justify center justify c
  • java基础(一)-虚拟机和第一个命令

    虚拟机 用 Java 语言编写的程序由 Java 虚拟机 JVM 来执行 JVM 是一个特殊的程序 它知道如何执行用 Java 语言编写的程序 并且它的命令列表涵盖范围很大 比如 System out println 你以为我会说虚拟机是由
  • WebGL简介

    WebGL简介 前言 1 WebGL简介 1 1 WebGL概述 1 2 WebGL程序的结构 1 3 WebGL和OpenGL 2 着色器语言 2 1 顶点着色器 2 2 片元着色器 3 webGL绘制一个点 4 webGL渲染过程 前言
  • 模板类的特例化(具体化)

    模板的基础知识 模板的实例化 模板并不是真正的函数或类 它仅仅是编译器用来生成函数或类的一张 图纸 模板不会占用内存 最终生成的函数或者类才会占用内存 由模板生成函数或类的过程叫做模板的实例化 相应地 针对某个类型生成的特定版本的函数或类叫
  • 【Flask学习】2.1模板之渲染

    1 模板概念 观察之前的demo程序 1个视图函数的响应是诸如 h1 Hello everyone h1 的html文本 但是常规的视图函数一般经过业务逻辑处理 再生成响应返回给客户端 这两个过程叫做业务逻辑和表现逻辑 目前来看 demo中
  • 压力测试脚本,并发发送请求

    import base64 import os import urllib import numpy as np import requests time json threading random class Presstest obje
  • Java实现五子棋对战小游戏【完整版】

    个人简介 个人主页 陈橘又青 博客记录心情 代码编写人生 如果文章对你有用 麻烦关注点赞收藏走一波 感谢支持 欢迎订阅我的专栏 Java进阶之路 带你入门Java 从0到1 Java全栈编程 带你项目实战 掌握核心 前言 大家好 今天用sw
  • ios 设备的移动端页面 光标错位

    1 这个问题遇到好多次了 经常是上下错位 原因是在input 获取焦点以后 键盘弹出后 页面网上移动 但是光标停留在了以前的位置 如果页面不复杂 可以在body上添加 position fixed 但是这样会引起页面失去滚动能力 目前只能是
  • iOS开发实战-仿小红书App开发-1-App创建与Git

    1 新建项目 2 添加Git仓库 添加自己的gitHub账号 3 Token获取方式 Settings Developer Settings 获取个人Token 填写相关内容 得到Token后复制它 拿到Xcode中登录 填写相关信息 创建
  • Qt次线程向主程序发送信号收不到的问题

    问题的提出 Qt次线程向主程序发送信号收不到 信号槽connect返回也是true 排查原因如下 信号或槽函数中的参数用到了自定义类型 如果要在Qt信号槽中使用自定义类型 需要注意使用qRegisterMetaType对自定义类型进行注册
  • 【Python】用xpath爬取网页文字保存到txt中(含有文字解码代码)

    本文收录于 python学习笔记 专栏 这个专栏主要是我学习Python中遇到的问题 学习的新知识 或总结的一些知识点 我也是初学者 可能遇到的问题和大部分新人差不多 在这篇专栏里 我尽可能的分享出我学习的内容 专栏在持续更新中 hello
  • xctf php2

    好久没打CTF了 随便做一道练练手 知识点总结 phps可查看网页源代码 对于url编码服务器会自动解码一次 试着访问一下index php页面 回显正常 访问index phps可以查看页面源码 下面分析一下 参数id不能等于admin
  • JS逆向-常见反调试之“无限Debugger”,怎么解决?

    前言 本文是该专栏的第34篇 后面会持续分享python爬虫干货知识 记得关注 首先来说下反调试 一般将反调试理解为 影响正常调试的都属于反调试 其大致包括压缩混淆加密 无限debugger 控制台状态检测 蜜罐以及内存爆破 而无限debu
  • 智能合约之短地址攻击

    在了解以太坊智能合约短地址攻击之前 先要简单了解一下以太坊代币ERC 20 TOKEN 的一些基础知识 ERC EthereumRequest for Comment 即以太坊通用征求意见协议 开发者可以通过提交EIP Ethereum I
  • OpenMV(四)--STM32实现特征检测

    引 OpenMV 一 基础介绍与硬件架构OpenMV 二 IDE安装与固件下载OpenMV 三 实时获取摄像头图片 前言 本专栏基于以STM32H743为MCU的OpenMV H7基板 结合OV7725卷帘快门摄像头进行相关机器视觉应用的开