当前位置:   article > 正文

5.28OpenMV入门_openmv可完成的任务

openmv可完成的任务

10分钟快速上手 · OpenMV中文入门教程

使用的元件

先安装好,上述链接上手

IDE显示颜色阈值,同时也配有示例文件,如下图打开,helloworld 你好,世界! · OpenMV中文入门教程,在官方也有每一个的详细解析

OpenMV的一些依赖如下,进行import引入

以下是我个人学习过程的一些摘录

目录

一、背景知识 

二、能干啥,要干啥

1. 图像捕捉

2. 颜色跟踪

3. 人脸检测

4. 二维码识别

其他功能

 三、慢慢上手-图像处理方法

1.感光元件

2.基本方法 

3.统计图像信息

4.画图 


一、背景知识 

 

 

(下文就有用到这个LAB) 

 

二、能干啥,要干啥

2. 关于OpenMV 和 OpenCV
OpenMV是 开源的机器视觉框架,而 OpenMV 是一种 开源计算机视觉库,两者都是实现视觉应用的工具,不同的是 OpenMV 可以运行在 MCU 上,而OpenCV可以运行在多种框架的 CPU上,OpenMV的优势在于轻量化,但是处理高复杂图形信息和告诉图像能力的时候明显弱于OpenCV

以下是OpenMV开发板的一些基本功能的详细说明,包括图像捕捉、颜色跟踪、人脸检测和二维码识别等:

1. 图像捕捉

OpenMV开发板配备了一个摄像头模块,可以捕捉静态图像和视频帧。

  • 静态图像捕捉:可以使用sensor.snapshot()函数来捕捉当前视野的图像,并将其保存到SD卡或传输到计算机。
  • 视频流捕捉:可以连续捕捉视频帧,并在处理后显示或保存。
  1. import sensor, image, time
  2. sensor.reset() # 初始化摄像头
  3. sensor.set_pixformat(sensor.RGB565) # 设置像素格式为RGB565
  4. sensor.set_framesize(sensor.QVGA) # 设置分辨率为QVGA (320x240)
  5. sensor.skip_frames(time = 2000) # 让摄像头稳定2秒
  6. while(True):
  7. img = sensor.snapshot() # 捕捉图像
  8. # 这里可以对图像进行处理

2. 颜色跟踪

颜色跟踪是通过检测和跟踪图像中的特定颜色区域来实现的。

  • 颜色阈值设置:通过设置HSV(色调、饱和度、亮度)或RGB颜色空间的阈值来定义要跟踪的颜色。
  • 检测颜色区域:使用find_blobs()函数检测图像中的颜色块。
  1. import sensor, image, time
  2. sensor.reset()
  3. sensor.set_pixformat(sensor.RGB565)
  4. sensor.set_framesize(sensor.QVGA)
  5. sensor.skip_frames(time = 2000)
  6. # 定义红色的阈值范围
  7. red_threshold = (30, 100, 15, 127, 15, 127)
  8. while(True):
  9. img = sensor.snapshot()
  10. blobs = img.find_blobs([red_threshold])
  11. for blob in blobs:
  12. img.draw_rectangle(blob.rect())
  13. img.draw_cross(blob.cx(), blob.cy())

3. 人脸检测

OpenMV开发板支持基于Haar特征的级联分类器进行人脸检测。

  • 加载人脸检测模型:使用预训练的Haar特征模型进行检测。
  • 检测人脸:使用find_features()函数检测图像中的人脸。
  1. import sensor, image, time, pyb
  2. sensor.reset()
  3. sensor.set_pixformat(sensor.GRAYSCALE) # 人脸检测通常在灰度图像上进行
  4. sensor.set_framesize(sensor.QVGA)
  5. sensor.skip_frames(time = 2000)
  6. # 加载Haar特征分类器模型
  7. face_cascade = image.HaarCascade("frontalface", stages=25)
  8. while(True):
  9. img = sensor.snapshot()
  10. faces = img.find_features(face_cascade, threshold=0.75, scale_factor=1.25)
  11. for face in faces:
  12. img.draw_rectangle(face)

4. 二维码识别

OpenMV开发板支持检测和解码图像中的二维码。

  • 检测二维码:使用find_qrcodes()函数检测并解码图像中的二维码。
  1. import sensor, image, time
  2. sensor.reset()
  3. sensor.set_pixformat(sensor.GRAYSCALE) # 二维码识别通常在灰度图像上进行
  4. sensor.set_framesize(sensor.QVGA)
  5. sensor.skip_frames(time = 2000)
  6. while(True):
  7. img = sensor.snapshot()
  8. qrcodes = img.find_qrcodes()
  9. for qrcode in qrcodes:
  10. img.draw_rectangle(qrcode.rect())
  11. print(qrcode.payload()) # 打印二维码的内容

其他功能

OpenMV开发板还支持许多其他功能,如边缘检测、条形码识别、光流跟踪、机器学习等。每种功能都有对应的API,可以通过阅读官方文档和示例代码来学习和使用这些功能。

  • OpenMV官方文档
  • OpenMV社区论坛

 三、慢慢上手-图像处理方法

基本方法 · OpenMV中文入门教程

还得是官网

1.感光元件

感光元件 · OpenMV中文入门教程

2.基本方法 

基本方法 · OpenMV中文入门教程

主要是将的怎么提取图像的部分基本信息和设置宽度、运算

 

3.统计图像信息

使用统计信息 · OpenMV中文入门教程

统计图像的最大面积颜色,平均数,中位数,众数,标准差,最小值,最大值,第一四分数,第三四分数等

4.画图 

需要对图像中的某些位置进行标注时使用,直接在图像中显示出来,很直观

画图 · OpenMV中文入门教程

画线

  • image.draw_line(line_tuple, color=White) 在图像中画一条直线。
    • line_tuple的格式是(x0, y0, x1, y1),意思是(x0, y0)到(x1, y1)的直线。
    • 颜色可以是灰度值(0-255),或者是彩色值(r, g, b)的tupple。默认是白色

画框

  • image.draw_rectangle(rect_tuple, color=White) 在图像中画一个矩形框。
    • rect_tuple 的格式是 (x, y, w, h)。

画圆

  • image.draw_circle(x, y, radius, color=White) 在图像中画一个圆。
    • x,y是圆心坐标
    • radius是圆的半径

画十字

  • image.draw_cross(x, y, size=5, color=White) 在图像中画一个十字
    • x,y是坐标
    • size是两侧的尺寸

写字

  • image.draw_string(x, y, text, color=White) 在图像中写字 8x10的像素
    • x,y是坐标。使用\n, \r, and \r\n会使光标移动到下一行。
    • text是要写的字符串。

其他的再具体应用上再说吧,毕竟是实操的。

今天想上手尝试一下,发现这个openmv好像有问题,或者是我的固件问题??不懂啊,两台电脑都没接上。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/920258
推荐阅读
相关标签
  

闽ICP备14008679号