OpenMV 檢測色塊

2021-09-29 06:03:59 字數 2314 閱讀 4782

設定綠色的閾值,括號裡面的數值分別是l a b 的最大值和最小值(minl, maxl, mina,maxa, minb, maxb)

green_threshold =(0

,80,-

70,-10

,-0,

30)

初始化

sensor.reset(

)#初始化攝像頭

sensor.set_pixformat(sensor.rgb565)

#格式為 rgb565.

sensor.set_framesize(sensor.qqvga)

#使用 qqvga 速度快一些

sensor.skip_frames(

100)

#跳過100frame,使新設定生效,並自動調節白平衡

sensor.set_auto_gain(

false

)#關閉自動自動增益。預設開啟的,在顏色識別中,一定要關閉白平衡。

sensor.set_auto_whitebal(

false

)#關閉白平衡。白平衡是預設開啟的,在顏色識別中,一定要關閉白平衡。

find_blobs(thresholds, invert=false, roi=auto),thresholds為顏色閾值,是乙個元組,需要用括號[ ]括起來。invert=1,反轉顏色閾值,invert=false預設不反轉。roi設定顏色識別的視野區域,roi是乙個元組, roi = (x, y, w, h),代表從左上頂點(x,y)開始的寬為w高為h的矩形區域,roi不設定的話預設為整個影象視野。這個函式返回乙個列表,[0]代表識別到的目標顏色區域左上頂點的x座標,[1]代表左上頂點y座標,[2]代表目標區域的寬,[3]代表目標區域的高,[4]代表目標區域畫素點的個數,[5]代表目標區域的中心點x座標,[6]代表目標區域中心點y座標,[7]代表目標顏色區域的旋轉角度(是弧度值,浮點型,列表其他元素是整型),[8]代表與此目標區域交叉的目標個數,[9]代表顏色的編號(它可以用來分辨這個區域是用哪個顏色閾值threshold識別出來的)。

全部**:

# 色塊監測 例子 (深綠色)

import sensor, image, time

# 顏色追蹤的例子,一定要控制環境的光,保持光線是穩定的。

#設定綠色的閾值,括號裡面的數值分別是l a b 的最大值和最小值(minl, maxl, mina,maxa, minb, maxb)

green_threshold =(0

,80,-

70,-10

,-0,

30)sensor.reset(

)#初始化攝像頭

sensor.set_pixformat(sensor.rgb565)

#格式為 rgb565.

sensor.set_framesize(sensor.qqvga)

#使用 qqvga 速度快一些

sensor.skip_frames(

100)

#跳過100frame,使新設定生效,並自動調節白平衡

sensor.set_auto_gain(

false

)#關閉自動自動增益。預設開啟的,在顏色識別中,一定要關閉白平衡。

sensor.set_auto_whitebal(

false

)#關閉白平衡。白平衡是預設開啟的,在顏色識別中,一定要關閉白平衡。

clock = time.clock(

)#追蹤幀率

while

(true):

clock.tick(

)#跟蹤快照之間經過的毫秒數

img = sensor.snapshot(

)#從感光晶元獲得一張影象

blobs = img.find_blobs(

[green_threshold]

)if blobs:

#如果找到了目標色塊

for b in blobs:

#迭代找到的目標顏色區域

if b[3]

<

50or b[4]

<70:

continue

img.draw_rectangle(b[0:

4])#用矩形標記出目標顏色區域

img.draw_cross(b[5]

, b[6]

)#在目標顏色區域的中心畫十字形標記

沒有綠色物體…我拿膠棒試的…

OPEN MV捕捉最大色塊

open mv捕捉最大色塊 import image,sensor,time sensor.reset sensor.set pixformat sensor.rgb565 sensor.set framesize sensor.qvga sensor.skip frames 100 red 8 6...

OpenMV多色塊識別

在螢幕上放的測試,實物可能需要更改一下閾值import sensor,image,time pyb sensor.reset sensor.set pixformat sensor.rgb565 sensor.set framesize sensor.qvga sensor.skip frames ...

檢測塊與塊的碰撞和塊和點

首先獲取到將要檢測的兩個物件,接下來得到兩個物件的塊區域,然後檢測碰撞,例如 for varob inaarr index1.removefromparent true aarr.splice aarr.indexof index1 1 計算分數 vars this.score label.gets...