Orodha ya maudhui:
- Hatua ya 1: Kuchora Mstatili juu ya Kitu Kinachotambuliwa
- Hatua ya 2: Tafuta Njia ambayo kitu kimetembea
- Hatua ya 3: Kuunganisha Nambari zote mbili
Video: Ufuatiliaji wa Kitu cha Opencv: Hatua 3
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
Kusonga kugundua kitu ni mbinu inayotumiwa katika maono ya kompyuta na usindikaji wa picha. Muafaka anuwai mfululizo kutoka kwa video unalinganishwa na njia anuwai kuamua ikiwa kitu chochote cha kusonga kinapatikana.
Kugundua vitu vya kusonga imetumika kwa anuwai ya programu kama ufuatiliaji wa video, utambuzi wa shughuli, ufuatiliaji wa hali ya barabara, usalama wa uwanja wa ndege, ufuatiliaji wa ulinzi kando ya mpaka wa baharini na nk.
Kusonga kugundua kitu ni kutambua mwendo wa mwili wa kitu mahali au eneo fulani. [2] Kwa kugawanya sehemu kati ya vitu vinavyohamia na eneo lililosimama au mkoa, mwendo wa vitu vinavyohamia unaweza kufuatiliwa na kwa hivyo inaweza kuchambuliwa baadaye. Ili kufanikisha hili, fikiria video ni muundo uliojengwa juu ya fremu moja, kugundua kitu ni kupata shabaha ya kusonga mbele, iwe katika kila fremu ya video au tu wakati shabaha inapoonekana mwonekano wa kwanza kwenye video.
Nitatumia mchanganyiko wa Opnecv na Python kugundua na kufuatilia vitu kulingana na rangi
Hatua ya 1: Kuchora Mstatili juu ya Kitu Kinachotambuliwa
ikiwa pc yako haina chatu au opencv tafadhali fuata hii hapa chini isiyowezekana
hapa nambari ya chatu:
kuagiza cv2import numpy kama np
cap = cv2. Ukamataji wa Video (0)
wakati Kweli:
_, fremu = cap.read () hsv = cv2.cvt Rangi (fremu, cv2. COLOR_BGR2HSV)
chini_yellow = np.raray ([20, 110, 110])
njano_ya juu = np.raray ([40, 255, 255])
manjano_mask = cv2.in Masafa (hsv, chini_yellow, juu_yellow)
(_, mtaro, _) = cv2.findContours (manjano_mask, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE)
kwa contour katika mtaro:
eneo = cv2.contourArea (contour)
ikiwa (eneo> 800):
x, y, w, h = cv2.boundingRect (contour) fremu = cv2. mstatili (fremu, (x, y), (x + w, y + h), (0, 0, 255), 10)
cv2.imshow ("ufuatiliaji", fremu)
k = cv2.waitKey (5) na 0XFF
ikiwa k == 27: kuvunja
cv2.destroyAll Windows ()
cap. tafadhali ()
Hatua ya 2: Tafuta Njia ambayo kitu kimetembea
kufuatilia njia:
kwa i katika anuwai (1, len (kituo_point)): b = nasibu.sanduku (230, 255) g = nasibu.sanduku (100, 255) r = nasibu.randint (100, 255) ikiwa math.sqrt ((((vituo_ vya katikati [i - 1] [0] - vituo vya katikati [0]) ** 2) + ((vituo vya katikati [i - 1] [1] - vituo vya katikati [1]) ** 2)) <= 50: cv2.line (fremu, vituo vya katikati [i - 1], vituo vya katikati , (b, g, r), 4)
Hatua ya 3: Kuunganisha Nambari zote mbili
nitaunganisha nambari zote mbili
kuagiza cv2import numpy kama np kuagiza nasibu kutoka kwa makusanyo kuagiza deque
cap = cv2. Ukamataji wa Video (1)
# Kufuatilia kila mahali ambapo kitu kilitembelewa center_points = deque ()
wakati Kweli:
# Soma na uweke fremu _, fremu = cap. Soma () fremu = cv2.flip (fremu, 1)
# Blur sura kidogo
blur_frame = cv2. GaussianBlur (sura, (7, 7), 0)
# Badilisha kutoka kwa BGR hadi muundo wa rangi ya HSV
hsv = cv2.cvt Rangi (blur_frame, cv2. COLOR_BGR2HSV)
# Fafanua anuwai ya chini na ya juu ya rangi ya hsv kugundua. Bluu hapa
chini_blue = np.raray ([100, 50, 50]) juu_blue = np.array ([140, 255, 255]) mask = cv2.in
# Tengeneza punje ya mviringo
kernel = cv2.getMuundoElement (cv2. MORPH_ELLIPSE, (15, 15))
# Kufungua morph (mmomomyoko ikifuatiwa na upanuzi)
mask = cv2.morphologyEx (mask, cv2. MORPH_OPEN, kernel)
# Pata mtaro wote
mtaro, safu ya uongozi = cv2.findContours (mask.copy (), cv2. RETR_LIST, cv2. CHAIN_APPROX_SIMPLE) [- 2:]
ikiwa len (mtaro)> 0:
# Pata mtaro mkubwa zaidi_contour = max (mtaro, ufunguo = cv2.contourArea)
# Tafuta kituo cha mtaro na chora duara iliyojazwa
muda = cv2.moments (great_contour) centre_of_contour = (int (moments ['m10'] / moments ['m00']), int (moments ['m01'] / moments ['m00'])) cv2.circle (fremu, kituo_cha_mtaa, 5, (0, 0, 255), -1)
# Funga contour na duara
ellipse = cv2.fitEllipse (kubwa_contour) cv2.ellipse (fremu, ellipse, (0, 255, 255), 2)
# Okoa kitovu cha contour kwa hivyo tunachora mstari kuifuatilia
vituo vya kituo.appendleft (centre_of_contour)
# Chora mstari kutoka sehemu za katikati za contour
kwa i katika anuwai (1, len (vituo vya katikati)): b = nasibu.sanduku (230, 255) g = nasibu.randint (100, 255) r = nasibu.randint (100, 255) ikiwa math.sqrt ((((vituo_ vya katikati [i - 1] [0] - vituo vya katikati [0]) ** 2) + ((vituo vya katikati [i - 1] [1] - vituo vya katikati [1]) ** 2)) <= 50: cv2.line (fremu, vituo vya katikati [i - 1], vituo vya katikati , (b, g, r), 4)
cv2.imshow ('asilia', fremu)
cv2.imshow ('mask', kinyago)
k = cv2.waitKey (5) na 0xFF
ikiwa k == 27: kuvunja
cv2.destroyAll Windows ()
cap. tafadhali ()
Ilipendekeza:
KITU CHA kichwa cha VR ya DIY KWA $ 80: Hatua 10 (na Picha)
DIY VR HEADSET KWA $ 80: Lengo langu la kwanza lilikuwa kufanya hii chini ya $ 150 (USD), hata hivyo baada ya kununua karibu na kubadilisha sehemu zingine kwa njia mbadala niliweza kuipeleka hadi $ 80. Basi wacha tuanze. Sehemu zinazohitajika ni: Geuza Flick switch2x LED1x resisto
Raspberry Pi - Autonomous Mars Rover na Ufuatiliaji wa Kitu cha OpenCV: Hatua 7 (na Picha)
Raspberry Pi - Autonomous Mars Rover na Ufuatiliaji wa Kitu cha OpenCV: Inayoendeshwa na Raspberry Pi 3, Fungua utambuzi wa kitu cha CV, sensorer za Ultrasonic na motors za DC. Rover hii inaweza kufuatilia kitu chochote ambacho imefundishwa na kuhamia kwenye eneo lolote
Mlishaji wa Kiwanda cha Moja kwa Moja cha WiFi Pamoja na Hifadhi - Usanidi wa Kilimo cha Ndani / Nje - Mimea ya Maji Moja kwa Moja na Ufuatiliaji wa Mbali: Hatua 21
Kilima cha Kiwanda cha Kiotomatiki cha WiFi kilicho na Hifadhi - Kuweka Kilimo cha ndani / Nje - Mimea ya Maji Moja kwa Moja na Ufuatiliaji wa Mbali: Katika mafunzo haya tutaonyesha jinsi ya kuanzisha mfumo wa kulisha mimea ya ndani / nje ambayo hunyunyizia mimea moja kwa moja na inaweza kufuatiliwa kwa mbali kutumia jukwaa la Adosia
Ufuatiliaji wa Chassis ya Ufuatiliaji wa Kijijini cha Rugged: Hatua 7 (na Picha)
Ufuatiliaji wa Chassis Remote Tracked Bot: Utangulizi: Kwa hivyo huu ulikuwa mradi ambao mwanzoni nilitaka kuanza na kukamilisha nyuma mnamo 2016, hata hivyo kwa sababu ya kazi na wingi wa vitu vingine nimeweza tu kuanza na kukamilisha mradi huu katika mwaka mpya 2018! Ilichukua kama wee 3
Badilisha Kidude cha kawaida cha Plastiki kuwa Kitu Nzuri Zaidi: Hatua 14 (na Picha)
Badilisha Kidude cha kawaida cha Plastiki kuwa Kitu Nzuri Zaidi: Motisha: Wakati wa msimu wa joto ninaweza kutumia au kufanya kazi kwenye miradi karibu na bustani / shamba yetu ndogo. Baridi iko juu yetu hapa Boston na niko tayari kuanza kushambulia orodha ndefu ya miradi ambayo nimeahirisha kwa "miezi ya ndani". Walakini, nina