Talaan ng mga Nilalaman:
- Hakbang 1: Pagguhit ng isang Parihaba sa Kinikilalang Bagay
- Hakbang 2: Subaybayan ang Landas kung saan Inilipat ng Bagay ang Bagay
- Hakbang 3: Pagsasama ng Parehong mga Code
Video: Pagsubaybay sa Opencv na Bagay: 3 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Ang paglipat ng pagtuklas ng bagay ay isang pamamaraan na ginamit sa paningin ng computer at pagproseso ng imahe. Ang maramihang magkakasunod na mga frame mula sa isang video ay inihambing ng iba't ibang mga pamamaraan upang matukoy kung may makitang anumang gumagalaw na bagay.
Ginamit ang paglipat ng mga object ng object para sa malawak na hanay ng mga application tulad ng pagsubaybay sa video, pagkilala sa aktibidad, pagsubaybay sa kondisyon ng kalsada, kaligtasan sa paliparan, pagsubaybay sa proteksyon kasama ang hangganan ng dagat at iba pa.
Ang paggalaw ng pagtuklas ng bagay ay kilalanin ang pisikal na paggalaw ng isang bagay sa isang naibigay na lugar o rehiyon. [2] Sa pamamagitan ng pag-arte ng paghihiwalay sa mga gumagalaw na bagay at nakatigil na lugar o rehiyon, ang paggalaw ng mga gumagalaw na bagay ay maaaring subaybayan at sa gayon ay masuri sa paglaon. Upang makamit ito, isaalang-alang ang isang video ay isang istrakturang itinayo sa mga solong frame, ang paglipat ng deteksyon ng bagay ay upang mahanap ang (mga) target sa paglipat ng harapan, alinman sa bawat frame ng video o kapag ipinakita lamang ng gumagalaw na target ang unang hitsura ng video.
Gagamitin ko ang kombinasyon ng Opnecv at Python upang makita at subaybayan ang mga bagay batay sa kulay
Hakbang 1: Pagguhit ng isang Parihaba sa Kinikilalang Bagay
kung ang iyong pc ay walang sawa o opencv mangyaring sundin ito sa ibaba insstructables
narito ang code ng sawa:
i-import ang cv2import numpy bilang np
cap = cv2. VideoCapture (0)
habang Totoo:
_, frame = cap.read () hsv = cv2.cvtColor (frame, cv2. COLOR_BGR2HSV)
lower_yellow = np.array ([20, 110, 110])
upper_yellow = np.array ([40, 255, 255])
yellow_mask = cv2.inRange (hsv, lower_yellow, upper_yellow)
(_, contours, _) = cv2.findContours (dilaw_mask, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE)
para sa tabas sa mga contour:
lugar = cv2.contourArea (tabas)
kung (lugar> 800):
x, y, w, h = cv2.boundingRect (contour) frame = cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 0, 255), 10)
cv2.imshow ("pagsubaybay", frame)
k = cv2.waitKey (5) & 0XFF
kung k == 27: masira
cv2.destroyAllWindows ()
cap.release ()
Hakbang 2: Subaybayan ang Landas kung saan Inilipat ng Bagay ang Bagay
upang subaybayan ang landas:
para sa ako sa saklaw (1, len (center_points)): b = random.randint (230, 255) g = random.randint (100, 255) r = random.randint (100, 255) kung math.sqrt (((center_points [i - 1] [0] - center_points [0]) ** 2) + ((center_points [i - 1] [1] - center_points [1]) ** 2)) <= 50: cv2.line (frame, center_points [i - 1], center_points , (b, g, r), 4)
Hakbang 3: Pagsasama ng Parehong mga Code
isasama ko ang parehong code
i-import ang cv2import numpy bilang np pag-import ng random mula sa mga koleksyon import deque
cap = cv2. VideoCapture (1)
# Upang subaybayan ang lahat ng punto kung saan binisita ng object ang center_points = deque ()
habang Totoo:
# Basahin at i-flip ang frame _, frame = cap.read () frame = cv2.flip (frame, 1)
# Blur ng kaunti ang frame
blur_frame = cv2. GaussianBlur (frame, (7, 7), 0)
# I-convert mula sa BGR sa format ng kulay na HSV
hsv = cv2.cvtColor (blur_frame, cv2. COLOR_BGR2HSV)
# Tukuyin ang mas mababa at itaas na saklaw ng kulay ng hsv upang makita. Blue dito
lower_blue = np.array ([100, 50, 50]) upper_blue = np.array ([140, 255, 255]) mask = cv2.inRange (hsv, lower_blue, upper_blue)
# Gumawa ng elliptical kernel
kernel = cv2.getStructuringElement (cv2. MORPH_ELLIPSE, (15, 15))
# Pagbubukas ng morph (pagguho ng lupa kasunod ang pagluwang)
mask = cv2.morphologyEx (mask, cv2. MORPH_OPEN, kernel)
# Hanapin ang lahat ng mga contour
contours, hierarchy = cv2.findContours (mask.copy (), cv2. RETR_LIST, cv2. CHAIN_APPROX_SIMPLE) [- 2:]
kung len (contours)> 0:
# Hanapin ang pinakamalaking contour pinakamalaking_contour = max (contours, key = cv2.contourArea)
# Humanap ng gitna ng tabas at iguhit ang napunan na bilog
sandali = cv2.moments (pinakamalaking_contour) centre_of_contour = (int (sandali ['m10'] / sandali ['m00']), int (sandali ['m01'] / sandali ['m00'])) cv2.circle (frame, centre_of_contour, 5, (0, 0, 255), -1)
# Bound ang contour ng bilog
ellipse = cv2.fitEllipse (pinakamalaking_contour) cv2.ellipse (frame, ellipse, (0, 255, 255), 2)
# I-save ang gitna ng tabas upang iguhit namin ang pagsubaybay sa linya nito
center_points.appendleft (centre_of_contour)
# Gumuhit ng linya mula sa mga puntong punto ng tabas
para sa ako sa saklaw (1, len (center_points)): b = random.randint (230, 255) g = random.randint (100, 255) r = random.randint (100, 255) kung math.sqrt (((center_points [i - 1] [0] - center_points [0]) ** 2) + ((center_points [i - 1] [1] - center_points [1]) ** 2)) <= 50: cv2.line (frame, center_points [i - 1], center_points , (b, g, r), 4)
cv2.imshow ('orihinal', frame)
cv2.imshow ('mask', mask)
k = cv2.waitKey (5) & 0xFF
kung k == 27: masira
cv2.destroyAllWindows ()
cap.release ()
Inirerekumendang:
Super Simple Murang DIY USB LED (mga) (at Iba Pang Bagay-bagay): 16 Hakbang
Super Simple Cheap DIY USB LED (s) (at Iba Pang Bagay-bagay): Kumusta at Maligayang pagdating sa aking unang itinuro:) Taya ko na lahat kami ay nagse-set up at muling pinopopopohan ang aming mga gumagawa muli pagkatapos ng virus, kaya sa palagay ko ito ay tungkol sa oras na gumagawa tayo natutunan lahat na gumawa ng aming sariling mga USB sa halip na umasa sa madaling maubos na batterie
Orientasyong Pag-program sa Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Pamamaraan sa Pagtuturo / Pamamaraan Gamit ang Shape Puncher: 5 Hakbang
Pag-ooriya sa Pag-program ng Bagay: Paglikha ng Mga Bagay ng Pag-aaral / Pamamaraan sa Pagtuturo / Pamamaraan Gamit ang Shape Puncher: Pamamaraan sa pag-aaral / pagtuturo para sa mga mag-aaral na bago sa object-oriented na programa. Ito ay isang paraan upang pahintulutan silang makita at makita ang proseso ng paglikha ng mga bagay mula sa mga klase. Bahagi 1. EkTools 2-pulgada malaking suntok; ang mga solidong hugis ay pinakamahusay.2. Piraso ng papel o c
Gumawa ng Bulag na Makilala ang Mga Bagay sa pamamagitan ng pagpindot sa Mga Bagay sa Kanila Paggamit ng MakeyMakey: 3 Mga Hakbang
Gawing Makilala ang mga Bulag sa Mga bagay sa pamamagitan ng pagpindot sa Mga Bagay sa Kanila Paggamit ng MakeyMakey: pagpapakilalaLayunin ng proyektong ito na gawing madali ang buhay ng bulag sa pamamagitan ng pagkilala sa mga bagay sa kanilang paligid sa pamamagitan ng pakiramdam ng ugnayan. Kami at ang aking anak na si Mustafa naisip namin ang tungkol sa paghahanap ng isang tool upang matulungan sila at sa panahon na ginagamit namin ang MakeyMakey hardware t
Raspberry Pi - Autonomous Mars Rover Na May Pagsubaybay sa Bagay na OpenCV: 7 Mga Hakbang (na may Mga Larawan)
Raspberry Pi - Autonomous Mars Rover Gamit ang Pagsubaybay sa Bagay ng OpenCV: Pinapagana ng isang Raspberry Pi 3, Buksan ang pagkilala sa object ng CV, mga sensor ng Ultrasonic at nakatuon na DC motor. Maaaring subaybayan ng rover ang anumang bagay na sinanay nito at lumipat sa anumang lupain
Paano Makakuha ng Mga Kanta o Iba Pang Bagay-bagay sa isang DVD Bilang isang MP3: 4 Mga Hakbang
Paano Kumuha ng Mga Kanta o Iba Pang Bagay-bagay sa isang DVD Bilang isang MP3: Kung mayroon kang isang DualDisc na may mga kanta dito na nais mong pakinggan sa isang Ipod, o isang normal na DVD na marahil isang track ng komentaryo na nais mong pakinggan isang Ipod, basahin ang natitirang bahagi nito upang magawa iyon. Mga item na kailangan-Computer, kamay, utak, DVD, Ipod