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.pswp.cn/diannao/14654.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14654.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14654.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nodejs實現生成加密zip壓縮包,封裝成一個vite插件

實現生成加密zip壓縮包的nodejs腳本 pnpm i -D archiver archiver-zip-encryptedconst { cwd } require("node:process"); const path require("path"); const fs require("fs-extra"); const archiver require("archiver");// 檢…

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 對應分析 對應分析的實質(理論很復雜,但是結果很明…

os.path 提供用于處理文件路徑和文件的系統函數

在Python中,os.path模塊提供了一系列用于處理文件路徑和文件的系統函數。 獲取文件路徑信息 os.path.abspath(): 獲取文件的絕對路徑。os.path.dirname(): 獲取文件路徑的目錄名。os.path.basename(): 獲取文件路徑的文件名。os.path.split(): 分割路徑為目錄和文件…

創新指南|利用電商產品視頻進行渠道營銷的最佳策略,不斷提升銷售額

無論企業的利基市場如何,電商產品視頻都已被證明是非常可靠的資產,可以讓目標受眾了解您所提供的產品——關鍵功能、展示重要的差異化優勢甚至改變大多數營銷活動的游戲規則。閱讀本文,全面了解電商產品視頻如何融入營銷推廣,以最…

基于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…

比較含退格的字符串-力扣

做這道題時出現了許多問題 第一次做題思路是使用雙指針去解決&#xff0c;快慢指針遇到字母則前進&#xff0c;遇到 # 則慢指針退1&#xff0c;最開始并未考慮到 slowindex < 0 ,從而導致越界。第二個問題在于&#xff0c;在最后判斷兩個字符串是否相同時&#xff0c;最初使…

力扣HOT100 - 31. 下一個排列

解題思路&#xff1a; 數字是逐步增大的 步驟如下&#xff1a; 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 &&…

Linux中“用戶管理”

我們linux中是靠用戶登陸的&#xff0c;每一個用戶都是唯一的&#xff0c;不可重復的&#xff0c;也是標識2計算機上的資源歸屬&#xff0c;那么它Linux中關聯什么作用我們詳細了解一下&#xff1a; 一、了解用戶 &#xff08;1&#xff09;保存用戶的位置 保存賬號和密碼的數…

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 在線使用說明&#xff1a; https://vicuesoft.com/vq-analyzer/userguide/ ref&#xff1a; Video Analyzer and Streaming Tester Software – VQ Analyzer HEVC 分析工具 - 懶人李冰 推薦一個開源且跨平臺的免費碼流分析軟件YUView - 知乎

企業管理咨詢在當前市場環境下的基本現狀

隨著全球經濟的深度融合和數字化轉型的加速推進&#xff0c;企業對于高效、專業的管理咨詢服務的需求日益旺盛。那么&#xff0c;企業管理咨詢在當前市場環境下究竟呈現出了怎樣的基本現狀呢&#xff1f; 首先&#xff0c;從市場規模來看&#xff0c;企業管理咨詢行業正在持續擴…

網絡設備的優勢

網絡設備在構建和維護高效、安全、可靠的網絡環境中發揮著至關重要的作用。它們的功能多樣&#xff0c;涉及數據傳輸、連接、安全、管理等多個方面。接下來&#xff0c;我們將深入探討幾種常見網絡設備的優勢及其應用場景。 交換機&#xff08;Switch&#xff09; 交換機主要…

尋找峰值 ---- 二分查找

題目鏈接 題目: 分析: 因為題目中要找的是任意一個峰值即可, 所以和<山脈數組的峰值索引>這道題差不多因為峰值左右都小于峰值, 所以具有"二段性", 可以使用二分查找算法如果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…