無人機飛行過程中,飛的越高,視野範圍也越遠,而所需要的區域只是一部分,額外的區域都會成為干擾,那麼就需要提取目標區域。
這是我們的高空俯檢視,從圖中看出,我們的目標區域明顯的特點是:很大面積的白色的底。那方法就顯而易見了,先刪選出白色區域,再提取輪廓點,最後根據輪廓點在原圖提取出目標區域。
frame = imutils.resize(frame, width=320) #調整大小
edges = cv2.canny(frame,100,300) #邊緣檢測,只是為了顯示
#提取白色區域
hsv = cv2.cvtcolor(frame, cv2.color_bgr2hsv)
mask = cv2.inrange(hsv, np.array((0., 0., 160)), np.array((180., 15.,255.)))
mask = cv2.medianblur(mask,3) #去椒鹽噪
#提取白色區域輪廓點
cnts = cnts[0] if imutils.is_cv2() else cnts[1]
aimcnt = none
if len(cnts) > 0:
#根據面積大小,從大到小排序
cnts = sorted(cnts, key=cv2.contourarea, reverse=true)
#找到目標輪廓四個角點
for i in cnts:
arc = cv2.arclength(i, true) #計算周長,下面函式一般要以周長為引數
break
#rect = cv2.minarearect(cnts[0])
#box = np.int0(cv2.boxpoints(rect)) #這裡也能得到四個輪廓點,只是在這幅圖中效果沒有上面方法理想
#繪製四個目標輪廓點
newframe=frame.copy()
for i in aimcnt:
cv2.circle(newframe, (i[0][0],i[0][1]),4, (0, 0, 255), -1)
#提取目標區域
aimframe = four_point_transform(frame, aimcnt.reshape(4, 2))
aimmask = four_point_transform(mask, aimcnt.reshape(4, 2))
aimedges = four_point_transform(edges, aimcnt.reshape(4, 2))
aimgray = cv2.cvtcolor(aimframe,cv2.color_bgr2gray) #轉化為灰度圖,進行霍夫圓檢測
#檢測圓
circles = cv2.houghcircles(aimgray,cv2.hough_gradient,1,100,param1=100,param2=20,minradius=1,maxradius=20)
#繪出圓
if circles is not none:
for i in circles[0,:]:
cv2.circle(aimframe,(i[0],i[1]),i[2],(255,0,0),2)
circles_x = int(i[0])
circles_y = int(i[1])
cv2.line(aimframe, (circles[0][0][0], circles[0][0][1]), (circles[0][1][0], circles[0][1][1]), (255, 0, 0), 2)
else:
circles_x = 160 #開啟攝像頭時的影象中點
circles_y = 120
cv2.imshow('newframe',newframe)
cv2.imshow('mask',mask)
cv2.imshow('edges',edges)
cv2.imshow('aimframe',aimframe)
cv2.imshow('aimmask',aimmask)
cv2.imshow('aimedges',aimedges)
cv2.waitkey(0)
結果圖:
無人機實驗筆記(識別交點 巡線)
由於我們的實驗場地並不是一根純黑線,中間的交線會對識別造成一定的影響,從而導致無人機在交線處飛偏,所以就想識別交點座標,保證無人機始終在直線上飛行,最後的實驗結果也很理想。識別交線 是在網上看到的一段 後來發現它的演算法思路很新奇,且應用過程中發現它的用武之地還蠻多的。演算法思路 這是一張二值化後的...
玩具無人機改18650電池實驗
玩具四軸飛行器無人機原裝電池只有幾百mah,為了延長飛行時間,嘗試用手頭3300mah的18650電池改裝,本電池實際稱重49g。1 焊接改裝好插頭,進行實驗 2 猛啟動會啟動不了報錯,輕輕啟動可以啟動起來,逐漸加速,但是在達到飛機離地的轉速以前,會掉電。3 究其原因,不外乎電池限流太小,苦於手頭無...
IoT 筆記 收錄快報 無人機
iot筆記收錄快報 無人機 無人機極具想象空間,也是蠢蠢欲動的夢想家們嚮往的領域。當前最大的應用領域大概是攝像機,這也是能相對清楚看到其未來發展的消費領域 還有自然是快遞領域,可惜涉及空間使用許可權及規則的制定,其大規模應用或許還有較長的路要走。lily camera 傻瓜式 無人機。通過gps返回...