Orodha ya maudhui:

Kugundua Rangi kwenye Python Kutumia OpenCV: Hatua 8
Kugundua Rangi kwenye Python Kutumia OpenCV: Hatua 8

Video: Kugundua Rangi kwenye Python Kutumia OpenCV: Hatua 8

Video: Kugundua Rangi kwenye Python Kutumia OpenCV: Hatua 8
Video: How to Train Paddle OCR on a Custom Dataset | YOLOv7 + OCR on Google Colab FREE GPU (ANPR/ALPR) 2023 2024, Julai
Anonim
Image
Image

Halo! Inayoweza kufundishwa hutumiwa kuongoza na jinsi ya kutoa rangi maalum kutoka kwenye picha kwenye chatu ukitumia maktaba ya openCV. Ikiwa mpya kwa mbinu hii basi usijali, mwisho wa mwongozo huu utaweza kupanga mpango wako mwenyewe wa kugundua rangi.

Zifuatazo ni kazi au tunaweza kusema mbinu ambazo utajifunza, 1. Jinsi ya kusoma picha

2. Jinsi ya kuunda Track Baa

3. Jinsi ya kurekebisha thamani ya Hue, Kueneza na thamani ya picha kwa kutumia baa za wimbo

4. Na kisha kutakuwa na pato lako la mwisho

Unaweza kutazama video ya pato ambalo nimeambatanisha hapa chini.

Basi wacha tuanze

Vifaa

  • Python 3
  • maktaba ya openCV
  • maktaba numpy

Hatua ya 1: Kuingiza Maktaba

Kuagiza Maktaba
Kuagiza Maktaba

Picha hiyo ni ya ferrari ya manjano kama inavyoonyeshwa na tutapanga kutoa rangi ya manjano tu kutoka kwenye picha hiyo

Hatua ya kwanza itakuwa kuagiza maktaba zetu

1. Ikiwa ni pamoja na maktaba ya openCV. Inaitwa cv2 katika chatu

2. Ikiwa ni pamoja na maktaba ya numpy kama np. "As" inatuwezesha sisi numpy kama np kwa hivyo hakuna haja ya kuandika numpy tena na tena

Hatua ya 2: Kuunda Baa za Kufuatilia

Kuunda Baa za Kufuatilia
Kuunda Baa za Kufuatilia

Orodha ya Baa imeundwa kurekebisha thamani ya Hue, Kueneza na Thamani kwenye picha.

cv2.namedWindow ("TrackBars") Mstari huu wa nambari hutumiwa kuunda dirisha mpya la pato na jina la dirisha limepewa kama TrackBars (Unaweza kutoa jina lolote unalotaka)

cv2.resizeWindow ("TrackBars", 600, 250) Kazi hii hutumiwa kurekebisha dirisha. "TrackBars" ni kwa dirisha gani unataka kubadilisha ukubwa kwani nilitaka kurekebisha ukubwa wa TrackBars niliyoandika jina hilo. Ikifuatiwa na nambari mbili. Namba mbili hizo ni upana na urefu. Unaweza kucheza karibu na hizo nambari mbili kubadilisha saizi

Hatua ya 3: Kuunda TrackBars kwa Hue, Kueneza na Thamani

Kuunda TrackBars kwa Hue, Kueneza na Thamani
Kuunda TrackBars kwa Hue, Kueneza na Thamani
Kuunda TrackBars kwa Hue, Kueneza na Thamani
Kuunda TrackBars kwa Hue, Kueneza na Thamani

Sasa tutatengeneza TrackBars jumla ya 6 kwa Hue, Kueneza na thamani. Kila mmoja atakuwa na mbili yaani 1 kwa kiwango cha chini na 1 kwa kiwango cha juu. Tutatumia kazi ya kuundaTrackbar ya openCV. Kwanza tutaona sintaksia ya kazi hii.

cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Hii inaweza kutatanisha lakini usijali tutapitia kila hatua. Kumbuka jambo moja kuwa katika viwango vya wazi vya hue ni 179, kueneza ni 255 na thamani ni 255

1. Kuunda TrackBar kwa min hue:

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

Katika hii Hue min ni jina la trackbar, TrackBars ndio dirisha kuu, 0 ndio msimamo ambao kitelezi chetu kitakuwa na 179 ndio anuwai inamaanisha mtembezi atahama kutoka 0-179

2. Kuunda TrackBar kwa hue max:

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

Katika Hue max hii ni jina la trackbar, TrackBars ndio dirisha kuu, 179 ni msimamo ambao kitelezi chetu kitakuwa na 179 ndio upeo wa juu inamaanisha mtembezi atahama kutoka 179-0

3. Vivyo hivyo rudia hatua za kukaa kwa dakika, kukaa kwa kiwango cha juu, val min na val max kama inavyoonyeshwa kwenye picha

Picha iliyo na asili nyeupe ni picha ya pato. Hivi ndivyo baa zako za wimbo zitaonekana

Hatua ya 4: Jinsi ya Kusoma na Kurekebisha Picha

Jinsi ya Kusoma na Kurekebisha Picha
Jinsi ya Kusoma na Kurekebisha Picha

cv2.imread () hukuruhusu kusoma picha. Fikiria moja muhimu unahitaji kukumbuka kuwa eneo la picha yako lazima liwe kwenye folda moja ambapo programu imehifadhiwa. Tutaweka wakati kitanzi kwa sababu inapaswa kukimbia hadi inasoma picha au tunaweza kusema hadi hali hiyo iwe ya kweli

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

  • Katika hili nimeunda jina linalobadilika "img" ambalo ninahifadhi picha
  • Ndani ya cv2.imread andika jina la picha na ugani ndani ya nukuu mara mbili

Kubadilisha ukubwa wa picha tutatumia kazi ya cv2.resize. Sehemu hii ni ya hiari, ikiwa unataka kubadilisha ukubwa basi unaweza kutumia kazi hii

Ndani ya cv2.resize kwanza andika jina linalobadilika ambalo picha imehifadhiwa na kisha upana na urefu

Hatua ya 5: Kusoma Thamani za Bar ya Kufuatilia Kuitumia kwenye Picha

Kusoma Kufuatilia Maadili ya Baa Kuiomba kwenye Picha
Kusoma Kufuatilia Maadili ya Baa Kuiomba kwenye Picha
Kusoma Kufuatilia Maadili ya Baa Kuiomba kwenye Picha
Kusoma Kufuatilia Maadili ya Baa Kuiomba kwenye Picha

Ok hivyo sasa tutasoma maadili ya upau wa trackbar ili tuweze kuitumia kwa picha yetu. Tutapata maadili kwa kutumia kazi ya cv2.getTrackbarPos ().

Wacha tuanze na sehemu hiyo…

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

Katika taarifa hiyo hapo juu ninaunda jina la kutofautisha h_min ambalo nitahifadhi thamani ya Hue min. Kwa hivyo ndani ya hoja ya cv2.getTrackbarPos 1 itakuwa "Hue min" kwa sababu nataka maadili ya hue min (tahajia lazima iwe sawa sawa na ni kazi ya kuundaTrackbar) na hoja ya 2 itakuwa jina la dirisha la trackbar ambalo ni mali.

  • Rudia mchakato huo kwa h_max na kazi zingine kama inavyoonyeshwa kwenye picha hapo juu na kisha uchapishe maadili yote kwa kutumia chapa ()
  • Pato linaonyeshwa kwenye picha ya pili. Inachapisha maadili ya h_min, h_max, s_min, s_max, v_min, s_max

Hatua ya 6: Kuonyesha Picha na Kuweka Kikomo cha Juu na Chini

Kuonyesha Picha na Kuweka Upeo wa Juu na Chini
Kuonyesha Picha na Kuweka Upeo wa Juu na Chini

Sasa tuna thamani ya min na max ya hue, kueneza na thamani tutatumia dhamana hii kuchuja picha ili tuweze kutoa pato fulani la picha.

Tutaunda kinyago kwa hii kutumia kazi ya cv2.inRange. Na kabla ya hapo tutaweka kikomo cha juu na cha chini cha hue, kueneza na thamani

Kwa hivyo tengeneza jina la kutofautisha "chini" na utumie kazi ya safu ya numpy weka kiwango cha min kwa wote 3 kama ifuatavyo

chini = np.raray ([h_min, s_min, v_min])

Rudia hatua sawa kwa juu

juu = np.raray ([h_max, s_max, v_max])

Sasa tutaunda kinyago kama ifuatavyo

mask = cv2.inRange (saizi, chini, juu) Ndani ya cv2.inPanga hoja ya 1 itakuwa tofauti ambayo picha yangu ya mwisho imehifadhiwa, hoja ya 2 itakuwa kikomo cha chini na hoja ya 3 itakuwa kikomo cha juu.

Sasa tutaonyesha picha kuu na kinyago. Kuonyesha tutatumia kazi ya cv2.imshow ()

cv2.imshow ("img", resize) Hii ni kuonyesha picha kuu. Hoja ya 1 ni jina la dirisha ambalo unaweza kutoa jina lolote unalotaka na hoja ya 2 ni tofauti ambayo picha yangu kuu imehifadhiwa ambayo unataka kuonyesha.

Vivyo hivyo kurudia hatua za kinyago

cv2.imshow ("Pato", kinyago)

Hatua ya 7: Sasa Hatua ya Mwisho

Sasa Hatua ya Mwisho
Sasa Hatua ya Mwisho

Katika hatua hii ya mwisho tutatoa rangi ya gari na kuonyesha.

Nimeunda matokeo ya jina inayobadilika. Tena unaweza kutoa jina lolote unalotaka. Kwa hivyo tutatumia kazi ya cv2.bitwise_and () ambayo tutaongeza kwenye picha pamoja na kuunda picha mpya. Na popote saizi katika picha zote mbili zipo itachukua hiyo kama ndiyo au "1".

matokeo = cv2.bitwise_and (resize, resize, mask = mask)

  • Katika hii hoja ya 1 itakuwa picha yetu
  • Hoja ya 2 pia itakuwa picha yetu ya asili lakini ikifuatiwa na kinyago kilichotumiwa ambacho tuliunda hapo awali
  • Na mwishowe onyesha tu matokeo ukitumia kazi ya imshow

Nakili tu kubandika hatua hii ya mwisho ni ucheleweshaji tu na unaweza kutoka kwenye dirisha la pato kwa kubonyeza "a" kwenye kibodi

Hatua ya 8: Matokeo ya Mwisho

Ilipendekeza: