首页 > 其他分享 >OpenMV 初识(软件安装与使用,阈值编辑器处理图像)

OpenMV 初识(软件安装与使用,阈值编辑器处理图像)

时间:2022-10-26 21:58:25浏览次数:74  
标签:阈值 最小值 编译器 LAB 编辑器 初识 SD OpenMV

openMV简介

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

对于省钱党来说这是一个开源的项目,所以有兴趣的可以自己上网找相关资料自制一个,可以省个一两百块大洋。​这里安利一篇

一、硬件准备

  1. OpenMV

  2. 一根micro usb的数据线(一定要有数据传输功能的)

  3. 电脑、网络

二、软件准备

在openMV官网下载openmv IDE :官网
官网IDE是由Qt Creator编写,可以跨平台使用,官网提供了windows、mac os、Linux ubuntu 32位和64位,以及树莓派的版本,满足各个平台的开发,使得其应用更加广泛。Windows系统就选第一个啦。
下载得到安装包:
安装包
安装过程一路Next,值得一提的是默认安装C盘,可以手动修改安装路径为其它盘,不影响使用。
改安装路径
下一步可以连接上硬件:
OpenMV连接电脑
电脑将自动识别出一个U盘:
在这里插入图片描述
这是由于单片机烧入了固件程序将内部的Flash虚拟成了一个U盘可以看到这个U盘容量特别小,因此在后期的使用过程中建议插SD卡

用SD卡的好处多多:

1.SD卡也是一个文件系统,当上电的时候,如果插入SD卡,那么SD卡的文件系统就会自动取代内置的Flash文件系统,每次上电,就会运行SD卡中的main.py啦,还可以减少对stm32flash擦除次数,延长寿命。

2.SD卡最大支持2TB的容量。因此可以保存些大的程序,还可以放置训练好的神经网络模型,也可以放置需要对比的图片等进行调用。
内置文件
内部放置了三个文件,其中main.py文件就是要运行的程序文件。

注:有时会出现驱动安装不完整的情况,打开设备管理器可以看到有个感叹号,我们可以更新驱动程序
驱动安装不完整
官网上有非常详细的解决步骤: 在这

三、软件的功能与使用

OpenMV提供了两者阈值设置方案。分别是阈值编译器和直方图的方式选择阈值。

阈值编译器优点,所寻找到的目标颜色更加合理,其他相似颜色区域的干扰比较小。缺点,调节LAB的最大最小值比较花费时间。

直立方图恰好相反,他很容易找到LAB的最大最小值的大体区间,但是容易受到相似颜色区域的干扰。所以,建议两者配合使用

先用直立方图找到LAB的最大最小值的大体区间,再利用阈值编译器对LAB的最大最小值进行微调

软件安装完成后在主菜单可以找到这个图标:
在这里插入图片描述
打开这个软件会跳出一个默认的helloworld.py的例程(其它示例在文件选项可以看到),软件页面如下:
在这里插入图片描述页面左边是代码区域,右上角是帧缓冲区(可以显示摄像头拍到的),我们要选择红色盒子作为目标对象,只需要在帧缓冲区,拖动鼠标左键即可。右下角直方图可以选择四种色彩空间:

·RBG色彩空间:R代表红色,B代表蓝色,G代表绿色。它是一种线性色彩空间,其中颜色是通过红色,绿色和蓝色值的线性组合获得的。(做颜色识别的功能时比较方便)

·灰度(GRAY)色彩空间:单通道格式,值为0~255,颜色值为黑白之间,0是黑色,255是白色。(处理识别数字或轮廓等二值计算时速度比较快)

·LAB色彩空间:Lab颜色空间中,L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色,负端代表蓝色。不像RGB和CMYK色彩空间,Lab颜色被设计来接近人类视觉。()

·YUV色彩空间:“Y”表示明亮度,也就是灰阶值,“U”和“V”表示的则是色度,作用是描述影像色彩及饱和度,用于指定像素的颜色。

参考:常用色彩空间概念
RGB和灰度色彩空间直方图
LAB和YUV色彩空间直
根据直方图(LAB色彩空间)可知,我们的L最大值选择80,最小值为60。A最大值为40,最小值为-20。B的最大值为20,最小值为-10。(注:这个只需要包含绝大部分就行)

阈值编译器只有LAB阈值和灰度阈值设置,由上述四图可得,LAB分布值比较集中,所以选用LAB阈值编辑。

之后进行阈值编译器设置:

左上方工具——>机器视觉——>阈值编译器——>帧缓冲区。
在这里插入图片描述
可对要判断图像的LAB值进行调整。注意:这个时候OpenMV会截取帧缓冲区内照片(当前的图片)作为LAB值调整。所以我们采用阈值编译器的时候,需要提前将目标识别单位(红色盒子)放在OpenMV摄像头之前。再进行操作。

在这里插入图片描述
根据直立方图的值,我们调整LAB阈值编辑器最大值最小值,尽可能地让要目标识别对象变成全白色。(注:即使没有全部变成白色也不影响,反正最后会把所有没有被滤除的白色区域变成一个大框)然后复制下方的LAB阈值。

(58, 80, 19, 51, -10, 21)和直方图读取的数做一个对比(60,80,-20,40,-10,20)。

在这里只是举个例子,其它识别中,也可用其它的色彩空间进行识别。

标签:阈值,最小值,编译器,LAB,编辑器,初识,SD,OpenMV
From: https://www.cnblogs.com/yu7i7i/p/16830198.html

相关文章

  • tinymce实现导入word并将内容显示到编辑器中
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordAction......
  • 初识设计模式 - 模板方法模式
    简介在模板方法设计模式(TemplateMethodDesignPattern)中比较重要的两个概念是基本方法和模板方法。实现具体逻辑步骤的方法可以称之为基本方法,而把基本方法汇总起来......
  • vim编辑器-多行加注释与去注释
    [替换命令]1.插入注释(1)首先按键盘上的ESC进入命令行模式(2)再在底行输入以下命令:起始行号,结束行号s/^/注释符/g2.去注释(1)首先按键盘上的ESC进入命令行模式......
  • SQL-1(初识)
    1:SQL初识数据库,SQL与数据表1:数据库数据库(DataBase,简写为DB) 是用于保存数据的容器。你可以把它想象成一个虚拟的“文件柜”,其中可以放入多个“文件”,按照一定的结......
  • 01_初识Vue
    1.基础代码<!--html代码--><divid="root"><h1>hello,{{name.toUpperCase()}},{{address}}!</h1></div><!--js代码--><script>Vue.config.produ......
  • C++ 不知树系列之初识树(树的邻接矩阵、双亲孩子表示法……)
    1.前言树是一种很重要的数据结构,最初对数据结构的定义就是指对树和图的研究,后来才广义化了数据结构这个概念。从而可看出树和图在数结构这一研究领域的重要性。树和图重......
  • 初识设计模式 - 状态模式
    简介状态模式(StateDesignPattern)的定义是,允许一个对象在内部状态改变时改变它的行为,对象看起来似乎修改了它的类。在状态模式中,通常有两种方式实现状态转换:统一由环境......
  • C++ 不知树系列之初识树(树的邻接矩阵、双亲孩子表示法……)
    1.前言树是一种很重要的数据结构,最初对数据结构的定义就是指对树和图的研究,后来才广义化了数据结构这个概念。从而可看出树和图在数结构这一研究领域的重要性。树和图重......
  • 搭建在线协作编辑器EtherPad使用说明
     https://blog.csdn.net/f4761/article/details/96829784 https://blog.csdn.net/lian740930980/article/details/126306807执行apt-getupdate,出现标题报错,原因是do......
  • linux ---文本编辑器 vim
    Linuxvim文件编辑操作命令模式中的基本操作操作类型 操作键 功能光标方向移动↑  ↓ ← →上、下、左、右翻页 PageDown或Ctrl+F 向下翻动......