設定綠色的閾值,括號裡面的數值分別是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...