Turinys:
- 1 žingsnis: Nubrėžkite stačiakampį ant atpažinto objekto
- 2 žingsnis: atsekite kelią, kuriuo judėjo objektas
- 3 žingsnis: abiejų kodų integravimas
Video: „Opencv“objektų stebėjimas: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Judančių objektų aptikimas yra technika, naudojama kompiuteriniam matymui ir vaizdo apdorojimui. Keli vaizdo įrašo kadrai iš eilės palyginami įvairiais metodais, kad būtų galima nustatyti, ar aptinkamas judantis objektas.
Judančių objektų aptikimas buvo naudojamas įvairioms programoms, tokioms kaip vaizdo stebėjimas, veiklos atpažinimas, kelių būklės stebėjimas, oro uostų sauga, apsaugos prie jūros stebėjimas ir kt.
Judančių objektų aptikimas yra atpažinti fizinį objekto judėjimą tam tikroje vietoje ar regione. [2] Veikiant segmentus tarp judančių objektų ir nejudančios srities ar srities, judančių objektų judėjimas gali būti stebimas ir taip vėliau gali būti analizuojamas. Norėdami tai pasiekti, apsvarstykite, ar vaizdo įrašas yra struktūra, sudaryta iš atskirų kadrų, o judančio objekto aptikimas yra surasti priekinį planą (-us) judantį (-us) taikinį (-us) kiekviename vaizdo įrašo kadre arba tik tada, kai judantis taikinys pirmą kartą pasirodo vaizdo įraše.
Aš ketinu naudoti „Opnecv“ir „Python“derinį objektams aptikti ir sekti pagal spalvą
1 žingsnis: Nubrėžkite stačiakampį ant atpažinto objekto
jei jūsų kompiuteryje nėra „python“ar „opencv“, vadovaukitės toliau pateiktomis instrukcijomis
čia yra python kodas:
importuoti cv2import numpy kaip np
cap = cv2. VideoCapture (0)
nors tiesa:
_, frame = cap.read () hsv = cv2.cvtColor (kadras, cv2. COLOR_BGR2HSV)
apatinis_ geltonas = np.masyvas ([20, 110, 110])
viršutinė_ geltona = np.masyvas ([40, 255, 255])
geltona_kaukė = cv2.inRange (hsv, apatinė_ geltona, viršutinė_ geltona)
[_, kontūrai, _] = cv2.findContours (geltona_kaukė, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE)
kontūrui kontūruose:
plotas = cv2.contourArea (kontūras)
jei (plotas> 800):
x, y, w, h = cv2.boundingRect (kontūro) rėmas = cv2. stačiakampis (frame, (x, y), (x+w, y+h), (0, 0, 255), 10)
cv2.imshow („stebėjimas“, kadras)
k = cv2.waitKey (5) ir 0XFF
jei k == 27: pertrauka
cv2.destroyAllWindows ()
cap.release ()
2 žingsnis: atsekite kelią, kuriuo judėjo objektas
sekti kelią:
i diapazone (1, len (centro_taškai)): b = atsitiktinis.randint (230, 255) g = atsitiktinis.randint (100, 255) r = atsitiktinis.randint (100, 255), jei math.sqrt ((((centro taškai [i - 1] [0] - centro taškai [0]) ** 2) + ((centro taškai [i - 1] [1] - centro taškai [1]) ** 2)) <= 50: cv2.line (kadras, centro taškai [i - 1], centro taškai , (b, g, r), 4)
3 žingsnis: abiejų kodų integravimas
Aš integruosiu abu kodus
importuoti cv2import numpy kaip np importuoti atsitiktinai iš kolekcijų importuoti deque
cap = cv2. VideoCapture (1)
# Norėdami sekti visus taškus, kuriuose lankėsi objektas center_points = deque ()
nors tiesa:
# Skaitykite ir apverskite rėmelį _, rėmas = dangtelis. (Rėmas = cv2.flip (rėmas, 1)
# Šiek tiek neryškinkite rėmelį
blur_frame = cv2. GaussianBlur (kadras, (7, 7), 0)
# Konvertuokite iš BGR į HSV spalvų formatą
hsv = cv2.cvtColor (blur_frame, cv2. COLOR_BGR2HSV)
# Apibrėžkite apatinį ir viršutinį hsv spalvų diapazoną. Mėlyna čia
apatinė_ mėlyna = np.masyvas ([100, 50, 50]) viršutinė_ mėlyna = np.masyvas ([140, 255, 255]) kaukė = cv2.inRange (hsv, apatinė_ mėlyna, viršutinė_ mėlyna)
# Padarykite elipsinį branduolį
branduolys = cv2.getStructuringElement (cv2. MORPH_ELLIPSE, (15, 15))
# Pradinis morfas (erozija, po kurios išsiplėtimas)
kaukė = cv2.morphologyEx (kaukė, cv2. MORPH_OPEN, branduolys)
# Raskite visus kontūrus
kontūrai, hierarchija = cv2.findContours (mask.copy (), cv2. RETR_LIST, cv2. CHAIN_APPROX_SIMPLE) [-2:]
jei len (kontūrai)> 0:
# Raskite didžiausią kontūrą didžiausias_kontoras = maks. (Kontūrai, raktas = cv2.contourArea)
# Raskite kontūro centrą ir nubrėžkite užpildytą apskritimą
momentai = cv2.moments (didžiausias_kontūras) centre_of_contour = (int (akimirkos ['m10'] / akimirkos ['m00']), int (akimirkos ['m01'] / akimirkos ['m00'])) cv2.circle (frame, kontūro centras, 5, (0, 0, 255), -1)
# Apriškite kontūrą apskritimu
elipsė = cv2.fit
# Išsaugokite kontūro centrą, kad nubrėžtume jo sekimo liniją
center_points.appendleft (centre_kontūro)
# Nubrėžkite liniją nuo centrinių kontūro taškų
i diapazone (1, len (centro_taškai)): b = atsitiktinis.randint (230, 255) g = atsitiktinis.randint (100, 255) r = atsitiktinis.randint (100, 255), jei math.sqrt ((((centro taškai [i - 1] [0] - centro taškai [0]) ** 2) + ((centro taškai [i - 1] [1] - centro taškai [1]) ** 2)) <= 50: cv2.line (kadras, centro taškai [i - 1], centro taškai , (b, g, r), 4)
cv2.imshow ('originalus', kadras)
cv2.imshow ('kaukė', kaukė)
k = cv2.waitKey (5) ir 0xFF
jei k == 27: pertrauka
cv2.destroyAllWindows ()
cap.release ()
Rekomenduojamas:
Į objektą orientuotas programavimas: objektų kūrimas Mokymosi/mokymo metodas/technika naudojant formos perforatorių: 5 žingsniai
Į objektą orientuotas programavimas: objektų kūrimas Mokymosi/dėstymo metodas/technika naudojant „Shape Puncher“: mokymosi/mokymo metodas, skirtas pradedantiesiems programuoti objektus. Tai yra būdas leisti jiems vizualizuoti ir pamatyti objektų kūrimo iš klasių procesą.Dalės: 1. EkTools 2 colių didelis perforatorius; geriausiai tinka kietos formos.2. Popieriaus gabalas arba
Ultragarsinis jutiklis, skirtas fiksuoti objektų padėties pokyčius: 3 žingsniai
Ultragarsinis jutiklis, padedantis fiksuoti padėties pokyčius objektuose: svarbu, kad jūsų vertingi daiktai būtų saugūs, būtų nelengva, jei visą dieną saugotumėte savo pilį. Naudodami „Raspberry pi“fotoaparatą galite fotografuoti tinkamu momentu. Šis vadovas padės nufilmuoti vaizdo įrašą ar nufotografuoti
„Raspberry Pi“objektų aptikimas: 7 žingsniai
„Raspberry Pi“objektų aptikimas: šiame vadove pateikiamos nuoseklios instrukcijos, kaip „TensorFlow“objektų aptikimo API nustatyti „Raspberry Pi“. Vykdydami šiame vadove nurodytus veiksmus, galėsite naudoti „Raspberry Pi“objektui aptikti tiesioginiame vaizdo įraše iš P
„Raspberry Pi“- autonominis „Mars Rover“su „OpenCV“objektų stebėjimu: 7 žingsniai (su nuotraukomis)
„Raspberry Pi“- autonominis „Mars Rover“su „OpenCV“objektų sekimu: veikia „Raspberry Pi 3“, „Open CV“objektų atpažinimas, ultragarso jutikliai ir nuolatiniai nuolatinės srovės varikliai. Šis roveris gali sekti bet kokį objektą, kuriam jis yra apmokytas, ir judėti bet kokioje vietovėje
RASPBERRY PI Pi OBJEKTŲ APTIKIMAS SU KELIOMIS KAMEROMIS: 3 žingsniai
RASPBERRY PI Pi OBJEKTŲ ATSISAKYMAS SU KELIOMIS KAMEROMIS: Aš trumpai supažindinsiu su įžanga, nes pats pavadinimas rodo, koks yra pagrindinis nurodymų tikslas. Šiame žingsnis po žingsnio instrukcijoje paaiškinsiu, kaip prijungti kelias kameras, pvz., 1-pi kamerą, ir bent vieną USB kamerą arba 2 USB kameras