Sisällysluettelo:

Värin tunnistus Pythonissa OpenCV: n avulla: 8 vaihetta
Värin tunnistus Pythonissa OpenCV: n avulla: 8 vaihetta

Video: Värin tunnistus Pythonissa OpenCV: n avulla: 8 vaihetta

Video: Värin tunnistus Pythonissa OpenCV: n avulla: 8 vaihetta
Video: OpenCV - 06 : Head Recognition 2024, Heinäkuu
Anonim
Image
Image

Hei! Tätä ohjetta käytetään opastamaan, kuinka tietty väri voidaan purkaa kuvasta pythonissa openCV -kirjaston avulla. Jos et ole vielä perehtynyt tähän tekniikkaan, älä huoli, tämän oppaan lopussa voit ohjelmoida oman värintunnistusohjelmasi.

Seuraavat toiminnot tai voimme sanoa tekniikoita, joita opit, 1. Kuinka lukea kuva

2. Raidatankojen luominen

3. Kuinka säätää värisävyn, värikylläisyyden ja kuvan arvoa raitapalkkien avulla

4. Ja sitten on lopputulos

Voit katsoa alla olevan videon lähdöstä.

Aloitetaan siis

Tarvikkeet

  • Python 3
  • openCV -kirjasto
  • numpy kirjasto

Vaihe 1: Kirjastojen tuonti

Kirjastojen tuonti
Kirjastojen tuonti

Kuva on keltainen ferrari, kuten näytetään, ja ohjelmoimme poimimaan vain keltaisen värin kuvasta

Ensimmäinen askel on kirjastojen tuonti

1. Sisältää openCV -kirjaston. Sitä kutsutaan cv2: ksi pythonissa

2. Sisältää numpy -kirjaston np: ksi. "As" sallii meille numpy np: nä, joten numpy ei tarvitse kirjoittaa uudestaan ja uudestaan

Vaihe 2: Jälkipalkkien luominen

Jälkipalkkien luominen
Jälkipalkkien luominen

Jälkipalkit luodaan säätämään kuvan värisävyä, kylläisyyttä ja arvoa.

cv2.namedWindow ("TrackBars") Tätä koodiriviä käytetään uuden tulostusikkunan luomiseen ja ikkunan nimi on TrackBars (Voit antaa minkä tahansa nimen)

cv2.resizeWindow ("TrackBars", 600, 250) Tätä toimintoa käytetään ikkunan koon muuttamiseen. "TrackBars" on minkä ikkunan kokoa haluat muuttaa, koska halusin muuttaa TrackBars -ikkunan kokoa. Kirjoitin tämän nimen. Seuraavat kaksi kokonaislukua. Nämä kaksi kokonaislukua ovat leveys ja korkeus. Voit leikkiä näiden kahden numeron kanssa muuttaaksesi kokoa

Vaihe 3: Ohjauspalkkien luominen värisävylle, kylläisyydelle ja arvolle

TrackBarien luominen värisävyille, värikylläisyydelle ja arvoille
TrackBarien luominen värisävyille, värikylläisyydelle ja arvoille
TrackBarien luominen värisävyille, värikylläisyydelle ja arvoille
TrackBarien luominen värisävyille, värikylläisyydelle ja arvoille

Nyt luomme yhteensä 6 Trackbaria värisävyyn, kylläisyyteen ja arvoon. Jokaisessa on kaksi eli 1 vähintään ja yksi enintään. Käytämme openCV: n createTrackbar -toimintoa. Ensin näemme tämän funktion syntaksin.

cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Tämä saattaa olla hämmentävää, mutta älä huoli, käymme läpi jokaisen vaiheen. Muista yksi asia, että openCV -värisävyn arvot ovat 179, kylläisyys on 255 ja arvo on 255

1. TrackBarin luominen värisävyyn min:

cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, tyhjä)

Tässä värisävyssä min on ohjauspalkin nimi, TrackBars on pääikkuna, 0 on sijainti, jossa liukusäädintämme on ja 179 on alue tarkoittaa, että silder siirtyy 0-179

2. TrackBarin luominen hue max: lle:

cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, tyhjä)

Tässä Hue max on ohjauspalkin nimi, TrackBars on pääikkuna, 179 on liukusäätimen sijainti ja 179 on suurin kantama tarkoittaa, että silder siirtyy 179-0

3. Toista samalla tavalla vaiheet sat min, sat max, val min ja val max, kuten kuvassa

Valkoinen taustakuva on lähtökuva. Tältä palkkisi näyttävät

Vaihe 4: Kuvan lukeminen ja koon muuttaminen

Kuinka lukea ja muuttaa kuvan kokoa
Kuinka lukea ja muuttaa kuvan kokoa

cv2.imread () avulla voit lukea kuvan. Yksi tärkeä ajatus sinun on pidettävä mielessä, että kuvan sijainnin on oltava samassa kansiossa, johon ohjelma tallennetaan. Lisäämme while -silmukan, koska sen pitäisi toimia, kunnes se lukee kuvaa tai voimme sanoa, kunnes ehto on totta

img = cv2.imread ("ferrari.jpg")

  • Tässä olen luonut muuttujan nimen "img", johon tallennan kuvan
  • Kirjoita cv2.imread -tiedoston sisälle kuvan nimi ja sen laajennus lainausmerkin sisään

Kuvan koon muuttamiseen käytämme cv2.resize -toimintoa. Tämä osa on valinnainen, jos haluat muuttaa kokoa, voit käyttää tätä toimintoa

Kirjoita cv2.resize -tiedostoon ensin muuttujan nimi, johon kuva on tallennettu, ja sitten sen leveys ja korkeus

Vaihe 5: Seuraa palkin arvoja sen käyttämiseksi kuvassa

Raidapalkin arvojen lukeminen sen käyttämiseksi kuvassa
Raidapalkin arvojen lukeminen sen käyttämiseksi kuvassa
Raidapalkin arvojen lukeminen sen käyttämiseksi kuvassa
Raidapalkin arvojen lukeminen sen käyttämiseksi kuvassa

Ok, nyt luemme trackbar -palkin arvot, jotta voimme soveltaa sitä kuvaamme. Saamme arvot käyttämällä cv2.getTrackbarPos () -funktiota.

Aloitetaan siitä osasta…

h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")

Yllä olevassa lausunnossa luon muuttujan nimen h_min, johon tallennan Hue min. Joten sisällä cv2.getTrackbarPos 1. argumentti olisi "Hue min", koska haluan värisävyn min arvot (oikeinkirjoituksen on oltava täsmälleen sama kuin se on createTrackbar -toiminto) ja toinen argumentti olisi sen trackbar -ikkunan nimi, johon se kuuluu.

  • Toista sama prosessi h_max- ja muille toiminnoille, kuten yllä olevassa kuvassa, ja tulosta sitten kaikki arvot käyttämällä print ()
  • Lähtö näkyy toisessa kuvassa. Se tulostaa arvot h_min, h_max, s_min, s_max, v_min, s_max

Vaihe 6: Kuvan näyttäminen ja ylä- ja alarajan asettaminen

Näytetään kuva ja asetetaan ylä- ja alaraja
Näytetään kuva ja asetetaan ylä- ja alaraja

Nyt meillä on värisävyn, värikylläisyyden ja arvon minimi- ja maksimiarvo, jota käytämme tämän arvon suodattamiseksi pois kuvasta, jotta voimme tuottaa kuvan tietyn värin.

Luomme sille maskin cv2.inRange -funktiolla. Ja sitä ennen asetamme sävyn, kylläisyyden ja arvon ylä- ja alarajan

Luo siis muuttujan nimi "alempi" ja käytä numpy -matriisitoimintoa min -alue kaikille 3 seuraavasti

alempi = np.array ([h_min, s_min, v_min])

Toista sama vaihe ylemmälle

ylempi = np.array ([h_max, s_max, v_max])

Nyt luomme naamion seuraavasti

maski = cv2.inRange (kokoa, alempi, ylempi) cv2.inRangin sisällä 1. argumentti olisi muuttuja, johon lopullinen kuvani on tallennettu, toinen argumentti on alaraja ja kolmas argumentti olisi yläraja.

Nyt aiomme näyttää pääkuvan ja maskin. Näyttöön käytämme funktiota cv2.imshow ()

cv2.imshow ("img", koon muuttaminen) Tällä näytetään pääkuva. Ensimmäinen argumentti on sen ikkunan nimi, jolle voit antaa minkä tahansa nimen ja toinen argumentti on muuttuja, johon pääkuvani on tallennettu ja jonka haluat näyttää.

Toista samalla tavalla maskin kohdalla

cv2.imshow ("Lähtö", peite)

Vaihe 7: Nyt viimeinen vaihe

Nyt viimeinen vaihe
Nyt viimeinen vaihe

Tässä viimeisessä vaiheessa poimimme auton ja näytön värit.

Olen luonut muuttujan nimen tuloksen. Jälleen voit antaa haluamasi nimen. Joten käytämme cv2.bitwise_and () -funktiota, jossa lisäämme kuvia yhdessä ja luomme uuden kuvan. Ja missä tahansa pikseliä molemmissa kuvissa on, se pitää sitä kyllä tai "1".

tulos = cv2.bitwise_and (koon muuttaminen, koon muuttaminen, naamio = naamio)

  • Tässä ensimmäinen argumentti on meidän kuva
  • Toinen argumentti on myös alkuperäinen kuva, mutta sitä seuraa aiemmin luomamme maski
  • Ja lopuksi vain näyttää tulos käyttämällä imshow -toimintoa

Kopioi liitä tämä viimeinen vaihe, se on vain viive ja voit poistua tulostusikkunasta painamalla näppäimistön "a" -painiketta

Vaihe 8: Lopulliset lähdöt

Suositeltava: