基於openmv硬體平台
識別原理:
1.尋找直線
2.計算相交直線的交點座標
3.判斷直線是否垂直
實驗效果:
實驗**:
importsensor,
image,
time
sensor.reset()
sensor.set_pixformat(sensor.rgb565)
sensor.set_framesize(sensor.qqvga)
clock=time.clock()
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
#第二條直線截距
if(k0==k1):
k0=k0+0.1
#計算角點座標
intersectionx=(b1
-b0)/(k0
-k1)
intersectiony=k0*intersectionx
+b0
img.draw_cross(int(intersectionx),int(intersectiony),color
=(0,
255,
0))
#判斷是否垂直
kk=float(k0)
*float(k1)
if(kk>
-1.3
andkk
<
-0.7
):
img.draw_circle(int(intersectionx),int(intersectiony),10,color
=(255,
0,0))
forlinlines:
img.draw_line(l.line(),color
=(255,
0,255))
print("fps%f"%
clock.fps())
susan角點檢測演算法
susan演算法是1997年牛津大學的smith等人提出的一種處理灰度影象的方法,它主要是用來計算影象中的角點特徵。susan演算法選用圓形模板 如圖1所示 將位於圓形視窗模板中心等待檢測的畫素點稱為核心點。核心點的鄰域被劃分為兩個區域 亮度值相似於核心點亮度的區域即核值相似區 univalue s...
Shi Tomasi角點檢測演算法
1 shi tomasi概念 2 api 3 code 1 角點檢測除了harris角點檢測演算法外,還常常使用shi tomasi演算法,shi tomasi演算法是harris演算法的改進,因此計算速度更快,shi tomasi演算法於1994年在文章 good features to trac...
OpenCV Shi Tomasi角點檢測演算法
shi tomasi運算元是1994年在文章 good features to track 中被提出的,opencv實現此演算法的函式就被命名為goodfeaturestotrack。shi tomasi運算元 cv mat basicalgorithm on shi tomasi cv mat m...