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

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

前言

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

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

OpenMV(四)--STM32实现特征检测_第1张图片

 OpenMV(四)--STM32实现特征检测_第2张图片

OpenMV(四)--STM32实现特征检测_第3张图片 

OpenMV(四)--STM32实现特征检测_第4张图片 

 OpenMV(四)--STM32实现特征检测_第5张图片

1. 边缘检测

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

1.1 构造函数

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

 OpenMV(四)--STM32实现特征检测_第6张图片

 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博客

你可能感兴趣的:(stm32,机器学习)