Turinys:
- 1 žingsnis: antraštės failai
- 2 veiksmas: vaizdo įrašo fiksavimas
- 3 žingsnis: kadro fiksavimas ir spalvos nustatymas
- 4 žingsnis: maskavimas ir ištraukimas
- 5 žingsnis: pagaliau rodomas
- 6 žingsnis: demonstracija
Video: Paprastas spalvų aptikimas naudojant „OpenCV“: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Sveiki! Šiandien aš parodysiu paprastą būdą aptikti spalvą iš tiesioginio vaizdo įrašo naudojant „OpenCV“ir „python“.
Iš esmės aš tik išbandysiu, ar reikiama spalva yra fono rėme, ar ne, o naudojant „OpenCV“modulius aš užmaskuosiu tą regioną ir tuo pačiu parodysiu rėmelį.
1 žingsnis: antraštės failai
Dabar čia aš naudoju du antraštės failus, būtent cv2 ir NumPy. Iš esmės cv2 yra „OpenCV“biblioteka, kurioje įkeliami visi svarbūs „c ++“failai naudojant kodų komandas (joje yra visi apibrėžimai).
„Numpy“yra „Python“biblioteka, kuri yra būtina norint išsaugoti daugialypį masyvą. Mes naudosime savo spalvų diapazono koordinates.
Ir numpy as np iš esmės padeda mūsų kodui šiek tiek sutrumpėti, kiekvieną kartą vietoj numpy naudojant np.
2 veiksmas: vaizdo įrašo fiksavimas
Tai gana paprasta naudojant python. Čia mums tiesiog reikia įjungti vaizdo įrašymo įrenginį, kad jis galėtų pradėti įrašinėti kadrus.
Dabar „VideoCapture“vertė rodo kamerą, mano atveju fotoaparatas yra prijungtas prie nešiojamojo kompiuterio, taigi 0.
Galite pasirinkti panašiai kaip 1 antrinei kamerai ir pan. „VideoCapture“sukuria jam objektą.
3 žingsnis: kadro fiksavimas ir spalvos nustatymas
Dabar mes turime ką nors padaryti, kad galėtume užfiksuoti momentinį vaizdo įrašo kadrą, kuris padės mums išgauti vaizdą ir galėtume tai įgyvendinti pagal reikalavimus.
ciklas „while“padės mums atlikti ciklą iki mūsų reikalaujamo laiko. Dabar „_, frame = cap.read ()“naudojamas užfiksuoto kadro teisingumui patikrinti ir išsaugoti. cap.read () yra loginis kintamasis ir grąžina true, jei kadras yra teisingai perskaitytas ir jei negausite kadrų, jis nerodys jokios klaidos, jūs tiesiog gausite None.
Dabar 11 ir 12 eilutės iš esmės apibrėžia spalvų diapazoną, kurį turime aptikti. Tam aš pripratau prie mėlynos spalvos.
Galite tęsti bet kokią spalvą, kurią jums reikia tiesiog įvesti tos spalvos BGR reikšmes. Geriau apibrėžti du masyvus, naudojant numpy masyvus, nes tam tikros spalvos aptikimas realiame pasaulyje neatitiks mūsų tikslo, o mes nustatysime mėlynos spalvos diapazoną, kad jis aptiktų diapazoną.
Tam aš apibrėžiau du kintamuosius, kuriuose saugomos apatinės ir viršutinės BGR vertės.
4 žingsnis: maskavimas ir ištraukimas
Dabar čia ateina pagrindinis uždavinys užmaskuoti rėmą ir išgauti rėmo spalvą. Maskavimui naudoju iš anksto nustatytas komandas, esančias „OpenCV“bibliotekoje. Iš esmės maskavimas yra tam tikros kadro dalies pašalinimo procesas, t.y. mes pašalinsime taškus, kurių spalvos BGR reikšmės neatitinka nustatyto spalvų diapazono, ir tai daro cv2.inRange. Vėliau užmaskuotam vaizdui pritaikome spalvų diapazoną, priklausomai nuo pikselių reikšmių, ir tam naudosime cv2.bitwise_and, jis tiesiog priskirs spalvas užmaskuotam regionui, priklausomai nuo kaukės ir spalvų diapazono verčių.
Cv2 nuoroda. bitwise_and:
5 žingsnis: pagaliau rodomas
Čia aš naudoju pagrindinį cv2.imshow (), kad būtų rodomas kiekvienas kadras kaip vaizdas. Kadangi rėmo duomenys yra saugomi kintamuosiuose, galiu juos gauti imshow (). Čia aš parodžiau visus tris rėmelius - originalius, užmaskuotus ir spalvotus.
Dabar turime išeiti iš ciklo „while“. Norėdami tai padaryti, galime tiesiog įdiegti cv2.wait. Key (). Iš esmės tai nurodo laukimo laiką prieš atsakant. Taigi, jei praeisite 0, jis lauks be galo, o 0xFF nurodo, kad architektūra yra 64 bitų. „ord ()“nurodo simbolį, kuris paspaudus vykdys „break“komandą „if“bloke ir išeis iš ciklo.
Tada cap.release () uždaro vaizdo įrašymo įrenginį, o cv2.destroyAllWindows () uždaro visus atidarytus langus.
Jei turite kokių nors problemų, praneškite man.
Nuoroda į šaltinio kodą:
Rekomenduojamas:
„MATLAB“paprastas veido aptikimas: 4 žingsniai
„MATLAB Easy Face Detection“: pagrindinis šios instrukcijos tikslas yra parodyti, kaip lengva bus apdoroti vaizdus. „MATLABFace“veido aptikimas ir stebėjimas buvo svarbi ir aktyvi tyrimų sritis, todėl aš paaiškinsiu kaip tai galima padaryti
Spalvų aptikimas „Python“naudojant „OpenCV“: 8 žingsniai
Spalvų aptikimas „Python“naudojant „OpenCV“: Sveiki! Ši instrukcija naudojama nurodant, kaip iš „Python“vaizdo išgauti tam tikrą spalvą naudojant „openCV“biblioteką. Jei nesate susipažinę su šia technika, nesijaudinkite, šio vadovo pabaigoje galėsite užprogramuoti savo spalvą
Objekto aptikimas naudojant „Dragonboard 410c“arba „820c“naudojant „OpenCV“ir „Tensorflow“: 4 žingsniai
Objektų aptikimas „W/ Dragonboard 410c“arba „820c“naudojant „OpenCV“ir „Tensorflow“. Šiose instrukcijose aprašoma, kaip įdiegti „OpenCV“, „Tensorflow“ir mašininio mokymosi sistemas „Python 3.5“, kad būtų paleista objektų aptikimo programa
Veido ir akių aptikimas naudojant „Raspberry Pi Zero“ir „Opencv“: 3 žingsniai
Veido ir akių aptikimas naudojant „Raspberry Pi Zero“ir „Opencv“: šioje instrukcijoje parodysiu, kaip galite aptikti veidą ir akis naudodami aviečių pi ir „opencv“. Tai yra mano pirmasis nurodymas „opencv“. Aš sekiau daugybę pamokų, kaip nustatyti atvirą aviečių cv, bet kiekvieną kartą pastebėjau keletą klaidų. Šiaip aš
Spalvų aptikimas naudojant RGB šviesos diodą: 4 žingsniai
Spalvų aptikimas naudojant RGB LED: Ar kada nors norėjote automatinio būdo spalvos aptikimo būdo? Šviesdami tam tikros spalvos šviesą ant objekto ir žiūrėdami, kiek šviesos atsispindi atgal, galite pasakyti, kokios spalvos objektas yra. Pavyzdžiui, jei užsidegsite raudona šviesa