Sisällysluettelo:
- Vaihe 1: Otsikkotiedostot
- Vaihe 2: Videon sieppaus
- Vaihe 3: Kehyksen sieppaus ja värin määrittäminen
- Vaihe 4: Peittäminen ja poistaminen
- Vaihe 5: Lopuksi näytetään
- Vaihe 6: Esittely
Video: Yksinkertainen värin tunnistus OpenCV: llä: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Hei! Tänään aion näyttää yksinkertaisen menetelmän havaita väri live -videosta OpenCV: n ja pythonin avulla.
Pohjimmiltaan testaan vain, että tarvittava väri on taustakehyksessä vai ei, ja OpenCV -moduulien avulla peitän kyseisen alueen ja näytän samanaikaisesti kehyksen.
Vaihe 1: Otsikkotiedostot
Nyt tässä olen käyttänyt kahta otsikkotiedostoa, nimittäin cv2 ja NumPy. Periaatteessa cv2 on OpenCV -kirjasto, joka lataa kaikki c ++ -tiedostot, jotka ovat tärkeitä käytettäessä koodien komentoja (se sisältää kaikki määritelmät).
Ja Numpy on python -kirjasto, joka on välttämätön moniulotteisen matriisin tallentamiseen. Käytämme värialueen koordinaattien tallentamiseen.
Ja numpy as np auttaa pohjimmiltaan koodiamme lyhentämään hieman käyttämällä np: tä joka kerta numpy: n sijaan.
Vaihe 2: Videon sieppaus
Tämä on melko yksinkertaista pythonia käytettäessä. Tässä meidän on vain kytkettävä videonauhuri päälle, jotta se voi aloittaa kuvien tallentamisen.
Nyt VideoCapturen sisällä oleva arvo osoittaa kameran, minun tapauksessani kamera on kytketty kannettavaan tietokoneeseen, joten 0.
Voit mennä samalla tavalla kuin 1 toissijaiselle kameralle ja niin edelleen. VideoCapture luo sille objektin.
Vaihe 3: Kehyksen sieppaus ja värin määrittäminen
Nyt meidän on tehtävä jotain, jotta voimme kaapata videon välittömän kehyksen, joka auttaa meitä poimimaan kuvan ja voimme työskennellä sen suhteen vaatimusten mukaisesti.
"while" -silmukka auttaa meitä suorittamaan silmukan vaadittuun aikaan. Nyt "_, frame = cap.read ()" käytetään tarkistetun kuvan kelvollisuuden tarkistamiseen ja tallentamiseen. "cap.read () on boolen muuttuja ja palauttaa arvon true, jos kehys luetaan oikein ja jos et saa kehyksiä, se ei näytä virheitä, saat yksinkertaisesti None.
Nyt rivit 11 ja 12 määrittelevät pohjimmiltaan värialueen, joka meidän on tunnistettava. Tätä varten olen tottunut siniseen väriin.
Voit jatkaa mitä tahansa väriä, joka sinun tarvitsee vain kirjoittaa BGR -arvot kyseiselle värille. On parempi määritellä kaksi taulukkoa käyttämällä numpy -matriiseja, koska tietyn värin havaitseminen todellisessa maailmassa ei palvele tarkoitustamme, vaan määritämme sinisen värin alueen siten, että se havaitsee alueen.
Tätä varten olen määritellyt kaksi muuttujaa, jotka tallentavat alemmat BGR -arvot ja ylemmät BGR -arvot.
Vaihe 4: Peittäminen ja poistaminen
Nyt tulee päätehtävä peittää kehys ja poimia kehyksen väri. Käytin peittämiseen OpenCV: n kirjastossa olevia ennalta määritettyjä komentoja. Pohjimmiltaan peittäminen on kehyksen osan poistaminen, eli poistamme pikselit, joiden värin BGR -arvot eivät ole määritetyllä värialueella, ja tämän tekee cv2.inRange. Myöhemmin käytämme värialuetta peitetylle kuvalle pikseliarvojen mukaan ja käytämme tätä varten cv2.bitwise_and, se yksinkertaisesti määrittää värit peitetylle alueelle maskin ja värialueen arvojen mukaan.
Linkki cv2: lle. bitwise_and:
Vaihe 5: Lopuksi näytetään
Tässä olen käyttänyt perus cv2.imshow () -näyttöä jokaisen kehyksen näyttämiseen kuvana. Koska kehystiedot on tallennettu muuttujiin, voin hakea ne imshow (): ssa. Tässä olen näyttänyt kaikki kolme kehystä, alkuperäiset, naamioidut ja värilliset.
Nyt meidän on poistuttava while -silmukasta. Tätä varten voimme yksinkertaisesti toteuttaa cv2.wait. Key (). Pohjimmiltaan se kertoo odotusajan ennen vastaamista. Joten jos ohitat 0, se odottaa loputtomasti ja 0xFF kertoo, että arkkitehtuuri on 64 -bittinen. "ord ()" määrittää merkin, jota painettaessa suoritetaan break -komento if -lohkossa ja se tulee ulos silmukasta.
Sitten cap.release () sulkee videonauhurin ja cv2.destroyAllWindows () sulkee kaikki avatut ikkunat.
Jos sinulla on ongelmia, kerro siitä minulle.
Linkki lähdekoodiin:
Suositeltava:
Kuvankäsittely Raspberry Pi: llä: OpenCV: n asentaminen ja kuvan värin erotus: 4 vaihetta
Kuvankäsittely Raspberry Pi: llä: OpenCV: n ja kuvan värin erottamisen asentaminen: Tämä viesti on ensimmäinen useista kuvankäsittelyoppaista, joita on tarkoitus seurata. Katsomme tarkemmin kuvan muodostavia pikseleitä, opimme asentamaan OpenCV: n Raspberry Pi -laitteeseen ja kirjoitamme myös testikomentosarjoja kuvan ottamiseksi ja myös
Opencv -kasvojentunnistus, koulutus ja tunnistus: 3 vaihetta
Opencv -kasvojentunnistus, -koulutus ja -tunnistus: OpenCV on avoimen lähdekoodin tietokonenäkökirjasto, joka on erittäin suosittu perustoimintojen, kuten sumennuksen, kuvien sekoittamisen, kuvan parantamisen sekä videon laadun, kynnyksen jne., Suorittamiseen. se todistaa
Värin tunnistus Pythonissa OpenCV: n avulla: 8 vaihetta
Värin tunnistus Pythonissa OpenCV: n avulla: Hei! Tätä ohjetta käytetään opastamaan, kuinka tietty väri voidaan purkaa kuvasta pythonissa openCV -kirjaston avulla. Jos olet uusi tässä tekniikassa, älä huoli, tämän oppaan lopussa voit ohjelmoida oman värisi
Kasvojen tunnistus ja tunnistus - Arduino -kasvotunnus OpenCV Pythonin ja Arduinon avulla .: 6 vaihetta
Kasvojen tunnistus ja tunnistus | Arduino -kasvotunnus OpenCV Pythonin ja Arduinon avulla .: Kasvontunnistus AKA -kasvotunnus on yksi tärkeimmistä ominaisuuksista matkapuhelimissa nykyään. Joten minulla oli kysymys " voinko saada kasvotunnuksen Arduino -projektilleni " ja vastaus on kyllä … Matkani alkoi seuraavasti: Vaihe 1: Pääsy
Värin tunnistus RGB -LED -valolla: 4 vaihetta
Värin tunnistus RGB -LED -valon avulla: Oletko koskaan halunnut automaattisen tavan havaita kohteen väri? Loistamalla tietyn värin valoa esineeseen ja katsomalla kuinka paljon valoa heijastuu takaisin, voit kertoa, minkä värinen kohde on. Jos esimerkiksi palaa punainen valo