Përmbajtje:

Zbulimi i ngjyrave në Python duke përdorur OpenCV: 8 hapa
Zbulimi i ngjyrave në Python duke përdorur OpenCV: 8 hapa

Video: Zbulimi i ngjyrave në Python duke përdorur OpenCV: 8 hapa

Video: Zbulimi i ngjyrave në Python duke përdorur OpenCV: 8 hapa
Video: Computer Vision with Python! Grayscaling Images 2024, Nëntor
Anonim
Image
Image

Përshëndetje! Ky udhëzues përdoret për të udhëzuar se si të nxjerrë një ngjyrë të veçantë nga një imazh në python duke përdorur bibliotekën openCV. Nëse jeni i ri në këtë teknikë, atëherë mos u shqetësoni, në fund të këtij udhëzuesi do të jeni në gjendje të programoni programin tuaj të zbulimit të ngjyrave.

Më poshtë janë funksionet ose mund të themi teknika të cilat do të mësoni, 1. Si të lexoni një imazh

2. Si të krijoni Track Bars

3. Si të rregulloni vlerën e Ngjyrës, Ngopjes dhe vlerës së një imazhi duke përdorur shiritat e pistave

4. Dhe pastaj do të ketë daljen tuaj përfundimtare

Ju mund të shikoni videon e daljes të cilën e kam bashkangjitur më poshtë.

Pra, le të fillojmë

Furnizimet

  • Python 3
  • biblioteka openCV
  • bibliotekë e mpirë

Hapi 1: Importimi i bibliotekave

Importimi i bibliotekave
Importimi i bibliotekave

Imazhi është i ferrarit të verdhë siç tregohet dhe ne do të programojmë të nxjerrim vetëm ngjyrë të verdhë nga ai imazh

Hapi i parë do të jetë importimi i bibliotekave tona

1. Përfshirë bibliotekën openCV. Quhet cv2 në python

2. Përfshirë bibliotekën numpy si np. "Si" na lejojë të na mpirë si np, kështu që nuk ka nevojë të shkruajmë numpy përsëri dhe përsëri

Hapi 2: Krijimi i shiritave të gjurmëve

Krijimi i shiritave të pistave
Krijimi i shiritave të pistave

Shiritat e gjurmëve janë krijuar për të rregulluar vlerën e Ngjyrës, Ngopjes dhe Vlerës në një imazh.

cv2.namedWindow ("TrackBars") Kjo linjë kodi përdoret për të krijuar një dritare të re dalëse dhe emri i dritares jepet si TrackBars (Mund të jepni çdo emër që dëshironi)

cv2.resizeWindow ("TrackBars", 600, 250) Ky funksion përdoret për të ndryshuar madhësinë e një dritareje. "TrackBars" është për cilën dritare doni të ndryshoni madhësinë pasi unë doja të ndryshoja madhësinë e dritares TrackBars e kam shkruar atë emër. E ndjekur nga dy numra të plotë. Ato dy numra të plotë janë gjerësia dhe lartësia. Mund të luani me ata dy numra për të ndryshuar madhësinë

Hapi 3: Krijimi i TrackBars për Ngjyrën, Ngopjen dhe Vlerën

Krijimi i TrackBars për Ngjyrën, Ngopjen dhe Vlerën
Krijimi i TrackBars për Ngjyrën, Ngopjen dhe Vlerën
Krijimi i TrackBars për Ngjyrën, Ngopjen dhe Vlerën
Krijimi i TrackBars për Ngjyrën, Ngopjen dhe Vlerën

Tani do të krijojmë gjithsej 6 TrackBars për Ngjyrën, Ngopjen dhe Vlerën. Secila do të ketë dy, domethënë 1 për minimumin dhe 1 për maksimumin. Ne do të përdorim funksionin createTrackbar të openCV. Së pari do të shohim sintaksën e këtij funksioni.

cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Kjo mund të jetë konfuze, por mos u shqetësoni, ne do të kalojmë në çdo hap. Mbani parasysh një gjë se në openCV vlerat e ngjyrës janë 179, ngopja është 255 dhe vlera është 255

1. Krijimi i TrackBar për hue min:

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

Në këtë Hue min është emri i shiritit, TrackBars është dritarja kryesore, 0 është pozicioni në të cilin do të jetë rrëshqitësi ynë dhe 179 është diapazoni që do të thotë që silder do të lëvizë nga 0-179

2. Krijimi i TrackBar për hue max:

cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, bosh)

Në këtë Hue max është emri i shiritit, TrackBars është dritarja kryesore, 179 është pozicioni në të cilin do të jetë rrëshqitësi ynë dhe 179 është diapazoni maksimal që do të thotë që silder do të lëvizë nga 179-0

3. Në mënyrë të ngjashme përsëritni hapat për sat min, sat max, val min dhe val max siç tregohet në imazh

Imazhi me sfond të bardhë është imazhi dalës. Kështu do të duken shiritat tuaj të pistave

Hapi 4: Si të lexoni dhe ndryshoni madhësinë e figurës

Si të lexoni dhe ndryshoni madhësinë e figurës
Si të lexoni dhe ndryshoni madhësinë e figurës

cv2.imread () ju lejon të lexoni imazhin. Një mendim i rëndësishëm që duhet të keni parasysh se vendndodhja e imazhit tuaj duhet të jetë në të njëjtën dosje ku ruhet programi. Ne do të vendosim lakin while sepse duhet të funksionojë derisa të lexojë imazhin ose mund të themi derisa gjendja të jetë e vërtetë

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

  • Në këtë kam krijuar një emër të ndryshueshëm "img" në të cilin po ruaj imazhin
  • Brenda cv2.imread shkruani emrin e imazhit me zgjerimin e tij brenda kuotimit të dyfishtë

Për të ndryshuar madhësinë e një imazhi ne do të përdorim funksionin cv2.resize. Kjo pjesë është opsionale, nëse doni të ndryshoni madhësinë atëherë mund ta përdorni këtë funksion

Brenda cv2.resize së pari shkruani emrin e ndryshores në të cilën ruhet imazhi dhe pastaj gjerësinë dhe lartësinë e tij

Hapi 5: Leximi i vlerave të shiritit të gjurmëve për ta zbatuar atë në një imazh

Leximi i vlerave të shiritit të gjurmëve për ta zbatuar atë në një imazh
Leximi i vlerave të shiritit të gjurmëve për ta zbatuar atë në një imazh
Leximi i vlerave të shiritit të gjurmëve për ta zbatuar atë në një imazh
Leximi i vlerave të shiritit të gjurmëve për ta zbatuar atë në një imazh

Në rregull, tani do të lexojmë vlerat e shiritit të shiritit, në mënyrë që ta zbatojmë atë në imazhin tonë. Ne do të marrim vlerat duke përdorur funksionin cv2.getTrackbarPos ().

Le të fillojmë me atë pjesë…

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

Në deklaratën e mësipërme unë jam duke krijuar një emër të ndryshueshëm h_min në të cilin do të ruaj vlerën e Hue min. Pra brenda cv2.getTrackbarPos argumenti i parë do të ishte "Hue min" sepse dua vlerat e hue min (Shkrimi duhet të jetë saktësisht i njëjtë me funksionin e krijimitTrackbar) dhe argumenti i dytë do të ishte emri i dritares së shiritit të cilës i përket.

  • Përsëriteni të njëjtin proces për h_max dhe pjesën tjetër të funksioneve siç tregohet në imazhin e mësipërm dhe më pas printoni të gjitha vlerat duke përdorur print ()
  • Dalja tregohet në imazhin e dytë. Po shtyp vlerat e h_min, h_max, s_min, s_max, v_min, s_max

Hapi 6: Shfaqja e imazhit dhe vendosja e kufirit të sipërm dhe të poshtëm

Shfaqja e imazhit dhe vendosja e kufirit të sipërm dhe të poshtëm
Shfaqja e imazhit dhe vendosja e kufirit të sipërm dhe të poshtëm

Tani kemi vlerën minimale dhe maksimale të ngjyrës, ngopjes dhe vlerës, ne do ta përdorim këtë vlerë për të filtruar imazhin në mënyrë që të mund të nxjerrim ngjyrën e veçantë të një imazhi.

Ne do të krijojmë një maskë për këtë duke përdorur funksionin cv2.inRange. Dhe para kësaj ne do të vendosim kufirin e sipërm dhe të poshtëm të ngjyrës, ngopjes dhe vlerës

Pra, krijoni një emër të ndryshueshëm "më të ulët" dhe duke përdorur funksionin e grupit numpy vendosni diapazonin e min për të 3 si më poshtë

më e ulët = np. array ([h_min, s_min, v_min])

Përsëriteni të njëjtin hap për pjesën e sipërme

sipërme = np. array ([h_max, s_max, v_max])

Tani do të krijojmë një maskë si më poshtë

mask = cv2.inRange (ndrysho madhësinë, më të ulëtën, sipërme) Brenda cv2.inRang argumenti i parë do të ishte ndryshorja në të cilën ruhet imazhi im përfundimtar, argumenti i dytë do të jetë kufiri i poshtëm dhe argumenti i tretë do të ishte kufiri i sipërm.

Tani do të shfaqim imazhin dhe maskën kryesore. Për të shfaqur ne do të përdorim funksionin cv2.imshow ()

cv2.imshow ("img", ndrysho madhësinë) Kjo është për të shfaqur imazhin kryesor. Argumenti i parë është emri i dritares që mund t'i jepni çdo emër që dëshironi dhe argumenti i dytë është i ndryshueshëm në të cilin ruhet imazhi im kryesor të cilin dëshironi ta shfaqni.

Në mënyrë të ngjashme, përsëritni hapat për maskën

cv2.imshow ("Output", maskë)

Hapi 7: Tani Hapi Final

Tani Hapi Final
Tani Hapi Final

Në këtë hap të fundit ne do të nxjerrim ngjyrën e makinës dhe ekranit.

Unë kam krijuar një rezultat të emrit të ndryshueshëm. Përsëri mund të jepni çdo emër që dëshironi. Pra, ne do të përdorim funksionin cv2.bitwise_and () në të cilin do t'i shtojmë imazhet së bashku dhe do të krijojmë një imazh të ri. Dhe kudo që pikselët në të dy imazhet janë të pranishëm, do ta marrin atë si po ose "1".

rezultati = cv2.bitwise_and (ndrysho madhësinë, ndrysho madhësinë, maskë = maskë)

  • Në këtë argumenti i parë do të jetë imazhi ynë
  • Argumenti i dytë do të jetë gjithashtu imazhi ynë origjinal, por i ndjekur nga maska e aplikuar të cilën e kemi krijuar më parë
  • Dhe së fundi vetëm shfaqni rezultatin duke përdorur funksionin imshow

Thjesht kopjoni ngjiteni këtë hap të fundit është thjesht një vonesë dhe mund të dilni nga dritarja e daljes duke shtypur "a" në tastierë

Hapi 8: Rezultatet përfundimtare

Recommended: