基於openmv平台進行開發
特別注意:
1.適用於直線行駛過程中
2.保證前方沒有障礙物
(障礙物識別正在開發過程中)
演算法原理:
1.影象hough變換獲取直線
2.判斷道路
獲取影象結果:
識別道路結果:
(存在時間誤差)
程式**:
importsensor,
image,
time
sensor.reset()
sensor.set_pixformat(sensor.rgb565)
sensor.set_framesize(sensor.qqvga)
clock=time.clock()
k0=0
b0=0
k1=0
b1=0
while(true):
clock.tick()
img=sensor.snapshot()
lines=img.find_lines(threshold
=1000,
theta_margin
=25,
rho_margin
=25)
foriinrange(0,len(lines)-
1):
forjinrange(i+
1,len(lines)):
ax1=lines[i].x1()
ay1=lines[i].y1()
ax2=lines[i].x2()
ay2=lines[i].y2()
if(ax1==ax2):
ax1=ax1
+0.01
k0=(ay2
-ay1)/(ax2
-ax1)
#第一條直線斜率
b0=ay1-k0
*ax1
#第一條直線截距
bx1=lines[j].x1()
by1=lines[j].y1()
bx2=lines[j].x2()
by2=lines[j].y2()
if(bx1==bx2):
bx1=bx1
+0.01
k1=(by2
-by1)/(bx2
-bx1)
#第二條直線斜率
b1=by1-k1
*bx1
#第二條直線截距
foriinrange(0,img.height()):
forjinrange(0,img.width()):
ifk0*j+b0
<=i
andk1
*j+b1
<=i:
img.set_pixel(j,i,(255,255,
255))
else:
img.set_pixel(j,i,(0,0,0))
forlinlines:
img.draw_line(l.line(),color
=(255,
0,255))
print("fps%f"%
clock.fps())
飛思卡爾智慧型小車計時器
智慧型小車之旅依然在繼續。實驗室非常簡陋。卻有乙個比較大的賽道。除此之外比較寒酸。想到要為小車做乙個計時系統。心血來潮。花一天時間學習51微控制器。一天時間設計100秒4位數碼管計時裝置。最後拼湊了乙個象模像樣的光電開關。終於把小車計時系統給弄起來了。為實驗室新增一工具。說什麼也是花了兩天時間沒日沒...
飛思卡爾 熟悉小車之 舵機篇
今天重新回到科創中心,開始飛思卡爾的旅程 但直到我今天開啟飛思卡爾小車例程 我不禁感慨,要學的還是蠻多的,跟入門根本是兩回事,或許可以說根本搭不上。我的任務是負責軟體這一塊,核心是影象處理,但是跟著學習了解小車的各個方面還是很有必要的,接下來我將用部落格記錄我在未來半年裡的點點滴滴 哦,我也帶著將我...
飛思卡爾ATD模組
s12xs系列mcu的atd模組有27個暫存器,六個轉換控制暫存器,兩個轉換狀態暫存器,乙個比較使能暫存器,乙個比較方式暫存器和16個轉換結果暫存器,附上一段例程 void atd init void 一般常用到的也就是這段例程中用到的幾個暫存器。include include derivative...