INHOUDSOPGAWE:
- Stap 1: Die koptekstlêers
- Stap 2: Neem die video op
- Stap 3: Vang raam en definieer kleur
- Stap 4: Maskering en onttrekking
- Stap 5: Uiteindelik vertoon
- Stap 6: Demo
Video: Eenvoudige kleuropsporing met behulp van OpenCV: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Hi! Vandag gaan ek 'n eenvoudige metode wys om 'n kleur uit 'n lewendige video op te spoor met behulp van OpenCV en python.
Eintlik sal ek net toets of die vereiste kleur in die agtergrondraam voorkom, al dan nie, en met behulp van OpenCV -modules sal ek die gebied masker en die raam gelyktydig vertoon.
Stap 1: Die koptekstlêers
Nou hier het ek twee koplêers gebruik, naamlik cv2 en NumPy. Basies is cv2 die OpenCV -biblioteek wat al die c ++ lêers laai wat belangrik is tydens die gebruik van die opdragte in die kodes (dit bevat al die definisies).
En Numpy is 'n luislangbiblioteek wat noodsaaklik is vir die stoor van 'n multidimensionele skikking. Ons sal ons kleurreeks-koördinate stoor.
En numpy as np help basies ons kode om 'n bietjie te verkort deur elke keer np te gebruik in plaas van numpy.
Stap 2: Neem die video op
Dit is redelik eenvoudig terwyl u python gebruik. Hier hoef ons net die video -opnemer aan te skakel sodat die rame kan begin opneem.
Nou dui die waarde in die VideoCapture die kamera aan, in my geval is die kamera aan my skootrekenaar gekoppel, dus 0.
U kan op dieselfde manier as 1 vir die sekondêre kamera gaan, ens. VideoCapture skep die voorwerp daarvoor.
Stap 3: Vang raam en definieer kleur
Nou hier moet ons iets doen sodat ons die onmiddellike raam van die video kan vaslê, wat ons sal help om die beeld uit te haal en daaraan kan werk volgens die vereiste.
'while' lus sal ons help om die lus na die vereiste tyd te neem. Nou word "_, frame = cap.read ()" gebruik om die geldigheid van die vasgelegde raam te kontroleer en dit te stoor. "cap.read () is 'n Booleaanse veranderlike en gee waar terug as die raam korrek gelees word, en as u geen rame kry nie, sal dit geen fout toon nie;
Nou definieer reël 11 en reël 12 basies die kleurreeks wat ons moet opspoor. Hiervoor het ek die blou kleur gebruik.
U kan voortgaan met enige kleur wat u nodig het om net BGR -waardes vir die spesifieke kleur in te tik. Dit is beter om twee skikkings te definieer met behulp van numpy skikkings, aangesien die opsporing van 'n bepaalde kleur in die werklike wêreld nie ons doel sal dien nie, maar ons definieer 'n reeks blou kleure sodat dit binne die reeks kan opspoor.
Hiervoor het ek twee veranderlikes gedefinieer wat die onderste BGR -waardes en die boonste BGR -waardes stoor.
Stap 4: Maskering en onttrekking
Die belangrikste taak is om die raam te masker en die kleur van die raam te onttrek. Ek het die vooraf gedefinieerde opdragte in die biblioteek in OpenCV gebruik om die maskering te doen. Maskering is in werklikheid die proses om 'n gedeelte van die raam te verwyder, dit wil sê, ons sal die pixels verwyder waarvan die kleur BGR -waardes nie in die gedefinieerde kleurreeks lê nie, en dit word gedoen deur cv2.inRange. Daarna pas ons die kleurreeks toe op die gemaskerde beeld, afhangende van die pixelwaardes, en hiervoor gebruik ons cv2.bitwise_and, dit sal die kleure eenvoudig toewys aan die gemaskerde gebied, afhangende van die masker- en kleurreekswaardes.
Skakel vir cv2. bitwise_and:
Stap 5: Uiteindelik vertoon
Hier het ek die basiese cv2.imshow () gebruik om vir elke raam as beeld te vertoon. Aangesien ek die raamdata in veranderlikes gestoor het, kan ek dit in imshow () ophaal. Hier het ek al die drie rame, oorspronklik, gemaskerd en gekleurd, vertoon.
Nou moet ons uit die while -lus gaan. Hiervoor kan ons eenvoudig die cv2.wait. Key () implementeer. Dit vertel basies die wagtyd voordat u reageer. As u dus 0 slaag, wag dit oneindig en 0xFF sê dat die argitektuur 64bit is. "ord ()" spesifiseer die karakter wat, wanneer ingedruk word, die breekopdrag in if block sal uitvoer en dit uit die lus sal kom.
Dan sluit cap.release () die video -opnemer en cv2.destroyAllWindows () sluit alle oop vensters.
Laat weet my as u probleme ondervind.
Skakel na bronkode:
Aanbeveel:
Kleuropsporing in Python met behulp van OpenCV: 8 stappe
Kleuropsporing in Python met behulp van OpenCV: Hallo! Hierdie instruksies word gebruik om te leer hoe u 'n spesifieke kleur uit 'n beeld in python kan onttrek met behulp van openCV -biblioteek. As u nie hierdie tegniek is nie, moenie bekommerd wees nie; aan die einde van hierdie gids kan u u eie kleur programmeer
Objekopsporing op grond van kleuropsporing: 10 stappe
Kleuropsporing gebaseerde objekopsporing: storie Ek het hierdie projek gedoen om beeldverwerking te leer met behulp van Framboos PI en oop CV. Om hierdie projek interessanter te maak, het ek twee SG90 Servomotors gebruik en 'n kamera daarop gemonteer. Een motor wat gebruik word om horisontaal te beweeg, en 'n tweede motor om vertikaal te beweeg
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: 4 stappe
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: Hallo, ek is Rithik. Ons gaan 'n internetbeheerde LED maak met u telefoon. Ons gaan sagteware soos Arduino IDE en Blynk gebruik. Dit is eenvoudig, en as u daarin geslaag het, kan u soveel elektroniese komponente beheer as wat u wil
Monitor versnelling met behulp van Raspberry Pi en AIS328DQTR met behulp van Python: 6 stappe
Monitering van versnelling met behulp van Raspberry Pi en AIS328DQTR Gebruik van Python: Versnelling is eindig, volgens ek volgens sommige wette van die fisika.- Terry Riley 'n Jagluiperd gebruik ongelooflike versnelling en vinnige spoedveranderinge wanneer hy jaag. Die vinnigste wesens aan wal gebruik af en toe sy hoogste tempo om prooi te vang. Die
Kleuropsporing met behulp van RGB LED: 4 stappe
Kleuropsporing met behulp van RGB LED: wou u ooit 'n outomatiese manier hê om die kleur van 'n voorwerp op te spoor? Deur die lig van 'n sekere kleur op die voorwerp te laat skyn en te kyk hoeveel lig daardeur weerkaats word, kan u sien watter kleur die voorwerp is. As u byvoorbeeld 'n rooi lig skyn