OpenMV学习笔记1——IDE安装与起步

目录

一、OpenMV IDE下载

二、OpenMV界面

三、Hello World!

四、将代码烧录到OpenMV实现脱机运行

五、插SD卡(为什么买的时候没送?)


 

一、OpenMV IDE下载

浏览器搜索OpenMV官网,进入后点击“立即下载”,即可下载OpenMV的IDE。因为我这里是使用Windows开发,所以下载与Windows匹配的版本。

 下载好后一路点击安装,什么都不需要管。在最后会提示是否安装XXX,一路点“是”就可以。安装好后会自动运行OpenMV的IDE。

二、OpenMV界面

 左边最大的是代码编写框,需要在这里写代码。

右上角写着“没有图像”的是OpenMV的Frame Buffer窗口,可以通过它来获知当前摄像头捕获到了什么,不过现在我们没有链接摄像头,所以什么都不显示。

它的下方是直方图,可以显示不同颜色的阈值,点击该窗口右上方的下拉三角即可切换不同的数据,包括RGB、灰度、LAB、YUV四种。

用USB数据线将OpenMV与电脑进行链接,点击IDE中左下角的链接和运行按钮,即可看到右边两个窗口有了显示数据。 

三、Hello World!

# Hello World Example
#
# Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!import sensor
import timesensor.reset()  # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565)  # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)  # Set frame size to QVGA (320x240)
sensor.skip_frames(time=2000)  # Wait for settings take effect.
clock = time.clock()  # Create a clock object to track the FPS.while True:clock.tick()  # Update the FPS clock.img = sensor.snapshot()  # Take a picture and return the image.print(clock.fps())  # Note: OpenMV Cam runs about half as fast when connected# to the IDE. The FPS should increase once disconnected.

在代码中,将鼠标移至任意函数或库处停留一段时间,即可查看光标停留位置指向函数或库的部分信息。 

新打开的IDE代码区自带了一段代码,第五及第六行是import语句,用于导入本程序需要使用的库。这个程序中导入了“sensor”及“time”两个库。

sensor.reset()用作初始化,初始化OpenMV的感光元件。

sensor.set_pixformat()设置像素模式,需要一个参数,可选项如下:

  • sensor.GRAYSCALE: 灰度,每个像素8bit。
  • sensor.RGB565: 彩色,每个像素16bit。

sensor.set_framesize()设置图像的大小,需要一个参数,可选项如下(转载自官方中文文档):

  • sensor.QQCIF: 88x72
  • sensor.QCIF: 176x144
  • sensor.CIF: 352x288
  • sensor.QQSIF: 88x60
  • sensor.QSIF: 176x120
  • sensor.SIF: 352x240
  • sensor.QQQQVGA: 40x30
  • sensor.QQQVGA: 80x60
  • sensor.QQVGA: 160x120
  • sensor.QVGA: 320x240
  • sensor.VGA: 640x480
  • sensor.HQQQVGA: 80x40
  • sensor.HQQVGA: 160x80
  • sensor.HQVGA: 240x160
  • sensor.B64X32: 64x32 (用于帧差异 image.find_displacement())
  • sensor.B64X64: 64x64 用于帧差异 image.find_displacement())
  • sensor.B128X64: 128x64 (用于帧差异 image.find_displacement())
  • sensor.B128X128: 128x128 (用于帧差异 image.find_displacement())
  • sensor.LCD: 128x160 (用于LCD扩展板)
  • sensor.QQVGA2: 128x160 (用于LCD扩展板)
  • sensor.WVGA: 720x480 (用于 MT9V034)
  • sensor.WVGA2:752x480 (用于 MT9V034)
  • sensor.SVGA: 800x600 (仅用于 OV5640 感光元件)
  • sensor.XGA: 1024x768 (仅用于 OV5640 感光元件)
  • sensor.SXGA: 1280x1024 (仅用于 OV5640 感光元件)
  • sensor.UXGA: 1600x1200 (仅用于 OV5640 感光元件)
  • sensor.HD: 1280x720 (仅用于 OV5640 感光元件)
  • sensor.FHD: 1920x1080 (仅用于 OV5640 感光元件)
  • sensor.QHD: 2560x1440 (仅用于 OV5640 感光元件)
  • sensor.QXGA: 2048x1536 (仅用于 OV5640 感光元件)
  • sensor.WQXGA: 2560x1600 (仅用于 OV5640 感光元件)
  • sensor.WQXGA2: 2592x1944 (仅用于 OV5640 感光元件)

 这里样例代码设置了“sensor.QVGA”,即设置图像大小为320×240。

sensor.skip_frames(n=10)跳过一些帧,跳过n张照片,在更改设置后,跳过一些帧,等待感光元件变稳定。样例代码设置为2000。

clock = time.clock()开启一个时钟。

之后,我们进入一个while的大循环里。在这个循环里,我们使用sensor.snapshot()拍摄一张照片,返回一个image对象,并使其显示在右侧栏当中。

最后一句是打印帧率,我们可以在代码区下方打开串行终端查看不断显示的帧率。

注意:这里显示的只是传输图像的帧率,如果我们在帧缓冲区右上角点击禁用,即不再想电脑传输图片,此时再次连接OpenMV,可以看到帧率有一波猛涨。

OpenMV的镜头是可以调整对焦的,只需要将镜头下方的锁焦环拧松,然后调整摄像头位置即可,一般最清晰的位置在底部偏上一些。调整好之后把镜头与锁焦环拧紧即可。

四、将代码烧录到OpenMV实现脱机运行

有时候我们想让OpenMV在不连接电脑的情况下也可以自己运行写好的代码,此时需要打开上方工具栏的“将打开的脚本保存到OpenMV CAM(作为main.py)选项。选择之后可以看到OpenMV亮了红灯,一会后熄灭,证明程序下载完成。

因为我这里之前点过一次,所以现在已经全变灰了

打开我的电脑可以看到,有一个新的U盘,这个就是OpenMV的Flash空间,打开后可以看到main.py,此时就是我们下载进去的程序。下载好之后,即使我们不连接电脑而是给它独立供电,也可以运行写好的程序。

五、插SD卡(“为什么买的时候没送?”)

如果觉得OpenMV自带的Flash空间太小,我们可以在背部找到一个卡槽用来装储存卡,最大支持32GB。插好卡之后再打开”我的电脑“,可以看到OpenMV的Flash被SD卡代替,存储空间已经变大了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/14654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++进阶:C++11(列表初始化、右值引用与移动构造移动赋值、可变参数模版...Args、lambda表达式、function包装器)

C进阶:C11(列表初始化、右值引用与移动构造移动赋值、可变参数模版…Args、lambda表达式、function包装器) 今天接着进行语法方面知识点的讲解 文章目录 1.统一的列表初始化1.1{}初始化1.2 initializer_listpair的补充 2.声明相关关键字2.1a…

python实现对应分析的随笔记

文档来源: Correspondence analysis 1 对应分析 参考: SPSS(十二)SPSS对应分析(图文数据集)案例6:SPSS–对应分析10 对应分析 对应分析的实质(理论很复杂,但是结果很明…

创新指南|利用电商产品视频进行渠道营销的最佳策略,不断提升销售额

无论企业的利基市场如何,电商产品视频都已被证明是非常可靠的资产,可以让目标受众了解您所提供的产品——关键功能、展示重要的差异化优势甚至改变大多数营销活动的游戏规则。阅读本文,全面了解电商产品视频如何融入营销推广,以最…

基于python向量机算法的数据分析与预测

3.1 数据来源信息 该数据集来源于Kaggle网站,数据集中包含了罗平菜籽油的销售数据,每行数据对应一条记录,记录了罗平菜籽油销售数据。其中,菜籽产量、菜籽价格和菜籽油价格是数值型数据,共2486条数据。 通过读取Exce…

SpringBootWeb 篇-深入了解 Mybatis 概念、数据库连接池、环境配置和 Lombok 工具包

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文件目录 1.0 Mybatis 概述 2.0 数据库连接池 2.1 数据库连接池的主要作用包括 2.2 如何切换数据库连接池? 3.0 配置环境 4.0 Lombok 工具包 4.1 如何导入到项目中呢…

Transformer详解(3)-多头自注意力机制

attention multi-head attention pytorch代码实现 import math import torch from torch import nn import torch.nn.functional as Fclass MultiHeadAttention(nn.Module):def __init__(self, heads8, d_model128, droput0.1):super().__init__()self.d_model d_model # 12…

力扣HOT100 - 31. 下一个排列

解题思路: 数字是逐步增大的 步骤如下: class Solution {public void nextPermutation(int[] nums) {int i nums.length - 2;while (i > 0 && nums[i] > nums[i 1]) i--;if (i > 0) {int j nums.length - 1;while (j > 0 &&…

Tina-Linux -- 5. 网络通信(有线网络,无线网络,SSH链接)

有线网络 bash 指令 ifconfig eth0 192.168.2.222 netmask 255.255.255.0 up route add default gw 192.168.2.1开机自启 修改网络设置文件 /etc/init.d/S40network #!/bin/sh # # Start the network.... ## Debian ifupdown needs the /run/network lock directory mkdir …

视频码流分析工具

一、VQ Analyzer 在线使用说明: https://vicuesoft.com/vq-analyzer/userguide/ ref: Video Analyzer and Streaming Tester Software – VQ Analyzer HEVC 分析工具 - 懒人李冰 推荐一个开源且跨平台的免费码流分析软件YUView - 知乎

企业管理咨询在当前市场环境下的基本现状

随着全球经济的深度融合和数字化转型的加速推进,企业对于高效、专业的管理咨询服务的需求日益旺盛。那么,企业管理咨询在当前市场环境下究竟呈现出了怎样的基本现状呢? 首先,从市场规模来看,企业管理咨询行业正在持续扩…

寻找峰值 ---- 二分查找

题目链接 题目: 分析: 因为题目中要找的是任意一个峰值即可, 所以和<山脉数组的峰值索引>这道题差不多因为峰值左右都小于峰值, 所以具有"二段性", 可以使用二分查找算法如果nums[mid] < nums[mid 1], mid一定不是峰值, 所以left mid 1如果nums[mid] &…

自主创新助力科技强军,麒麟信安闪耀第九届军博会

由中国指挥与控制学会主办的中国指挥控制大会暨第九届北京军博会于5月17日-19日在北京国家会议中心盛大开展&#xff0c;政府、军队、武警、公安、交通、人防、航天、航空、兵器、船舶、电科集团等从事国防军工技术与产业领域的30000多名代表到场参加。 麒麟信安作为国产化方案…

重学java 42.多线程 等待唤醒机制案例分析

Strength is built under a heavy load,I am expecting to pick up all of my loads and travel on. —— 24.5.24 章节重点 1.会用wait和notify两个方法 2.会使用Lock锁对象 3.会利用Cal1able接口实现多线程 4.会使用线程池完成多线程 等待唤醒案例分析&#xff08;线程之间的…

C++ TCP发送Socket数据

DEVC需要加入ws2_32库 #include <iostream> #include <winsock2.h>#pragma comment(lib, "ws2_32.lib")void sendData(const char* ip, int port, const char* data) {WSADATA wsaData;SOCKET sockfd;struct sockaddr_in server_addr;// 初始化Winsock…

Qt moc系统的黑魔法?

Qt的元对象系统&#xff08;Meta-Object System&#xff09;是Qt框架的核心功能之一&#xff0c;为C语言增加了一些动态特性&#xff0c;借助元对象系统Qt可以实现以下功能 信号与槽机制&#xff08;Signals and Slots&#xff09;运行时类型信息&#xff08;Run-Time Type In…

【高频】从输入URL到页面展示到底发生了什么?

一、相关衍生面试问题&#xff1a; 浏览器输入美团网站&#xff0c;从回车到浏览器展示经历了哪些过程 &#xff1f; http输入网页之后的流程&#xff1f; 百度搜索页面&#xff0c;从点开搜索框&#xff0c;到显示搜索页面经历了什么&#xff1f; 二、探究各个过程&#x…

maven--解决Idea没有拉取SNAPSHOT的问题

原文网址&#xff1a;maven--解决Idea没有拉取SNAPSHOT的问题_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Idea解决maven没有拉取SNAPSHOT的问题。 问题描述 项目依赖了以-SNAPSHOT结尾的包&#xff0c;它更新了。Idea点了重新导入后没有拉取到最新的包&#xff1a; 解决方案…

从“图形可视化”到“图生代码”,低代码平台的新挑战

前言&#xff1a; 低代码平台最大的一个特点就是可视化&#xff0c;将代码采用可视化的方式展示管理。一时间拥有图形化界面的各类系统都挂上了低代码的标签。但更多的代码从业者在使用中却发现&#xff0c;在众多的低代码平台中都是“别人家的代码”其可视化主要是别人家的代…

如何解决vcruntime140.dll丢失问题,详细介绍5种靠谱的解决方法

vcruntime140.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;它为使用Visual C编译器开发的应用程序提供必要的运行时环境。该DLL文件包含了大量应用程序运行时需要调用的库函数&#xff0c;这些函数是实现C标准库、异常处理机制、RTTI&#xff08;运行…

go-zero 实战(5)

引入Prometheus 用 Prometheus 监控应用 1. 用 docker 启动 Prometheus 编辑配置位置&#xff0c;我将 prometheus.yaml 和 targets.json 文件放在了 /opt/prometheus/conf目录下 prometheus.yaml global:scrape_interval: 15s # 抓取间隔evaluation_interval: 15s # 评估…