Përmbajtje:

Zbulimi i thjeshtë i ngjyrave duke përdorur OpenCV: 6 hapa
Zbulimi i thjeshtë i ngjyrave duke përdorur OpenCV: 6 hapa

Video: Zbulimi i thjeshtë i ngjyrave duke përdorur OpenCV: 6 hapa

Video: Zbulimi i thjeshtë i ngjyrave duke përdorur OpenCV: 6 hapa
Video: Leap Motion SDK 2024, Qershor
Anonim
Zbulimi i thjeshtë i ngjyrave duke përdorur OpenCV
Zbulimi i thjeshtë i ngjyrave duke përdorur OpenCV

Pershendetje! Sot do të tregoj një metodë të thjeshtë të zbulimit të një ngjyre nga një video e drejtpërdrejtë duke përdorur OpenCV dhe python.

Në thelb unë thjesht do të testoj që ngjyra e kërkuar është e pranishme në kuadrin e sfondit ose jo dhe duke përdorur modulet OpenCV do ta maskoj atë rajon dhe njëkohësisht do të shfaq kornizën.

Hapi 1: Skedarët e titullit

Skedarët e titullit
Skedarët e titullit

Tani këtu kam përdorur dy skedarë header domethënë cv2 dhe NumPy. Në thelb cv2 është biblioteka OpenCV e cila ngarkon të gjithë skedarët c ++ që janë të rëndësishëm gjatë përdorimit të komandave në kode (përmban të gjitha përkufizimet).

Dhe Numpy është një bibliotekë python që është thelbësore për ruajtjen e një grupi shumëdimensional. Ne do të përdorim për të ruajtur koordinatat tona të gamës së ngjyrave.

Dhe i mpirë si np në thelb ndihmon kodin tonë të shkurtohet pak duke përdorur np çdo herë në vend të numpy.

Hapi 2: Regjistrimi i videos

Regjistrimi i videos
Regjistrimi i videos

Kjo është mjaft e thjeshtë kur përdorni python. Këtu thjesht na duhet të ndezim regjistruesin e videove në mënyrë që të fillojë regjistrimin e kornizave.

Tani vlera brenda VideoCapture tregon kamerën, në rastin tim kamera është e lidhur me laptopin tim, pra 0.

Ju mund të shkoni në mënyrë të ngjashme me 1 për kamerën dytësore dhe kështu me radhë. VideoCapture krijon objektin për të.

Hapi 3: Kapja e kornizës dhe përcaktimi i ngjyrës

Kapja e kornizës dhe përcaktimi i ngjyrës
Kapja e kornizës dhe përcaktimi i ngjyrës

Tani këtu duhet të bëjmë diçka në mënyrë që të kapim kornizën e menjëhershme të videos e cila do të na ndihmojë të nxjerrim imazhin dhe ne mund të punojmë në atë sipas kërkesës.

lak "while" do të na ndihmojë për të drejtuar lakin në kohën e kërkuar. Tani "_, frame = cap.read ()" përdoret për të kontrolluar vlefshmërinë e Kornizës së kapur dhe e ruan atë. "cap.read () është një variabël boolean dhe kthehet e vërtetë nëse korniza lexohet saktë dhe nëse nuk merrni korniza nuk do të shfaqë ndonjë gabim, thjesht do të merrni Asnjë.

Tani rreshti 11 dhe rreshti 12 në thelb përcaktojnë gamën e ngjyrës që duhet të zbulojmë. Për këtë, unë jam mësuar me ngjyrën blu.

Ju mund të vazhdoni me çdo ngjyrë për atë që ju duhet vetëm të shkruani vlerat BGR për atë ngjyrë të veçantë. Bettershtë më mirë të përcaktojmë dy vargje duke përdorur vargje të mpirë pasi zbulimi i një ngjyre të veçantë në botën reale nuk do t'i shërbejë qëllimit tonë, por ne do të përcaktojmë një gamë të ngjyrës blu në mënyrë që të zbulojë brenda intervalit.

Për këtë, unë kam përcaktuar dy variabla që ruajnë vlerat më të ulëta të BGR dhe vlerat e sipërme të BGR.

Hapi 4: Maskimi dhe nxjerrja

Maskimi dhe nxjerrja
Maskimi dhe nxjerrja

Tani këtu vjen detyra kryesore e maskimit të kornizës dhe nxjerrja e ngjyrës së kornizës. Kam përdorur komandat e paracaktuara të pranishme në bibliotekë në OpenCV për të bërë maskimin. Në thelb maskimi është procesi i heqjes së një pjese të kornizës, domethënë ne do të heqim pikselët, ngjyra e të cilave vlerat BGR që nuk qëndrojnë në gamën e përcaktuar të ngjyrave dhe kjo bëhet nga cv2.inRange. Më pas, ne aplikojmë gamën e ngjyrave në imazhin e maskuar në varësi të vlerave të pikselëve dhe për këtë, ne do të përdorim cv2.bitwise_and, Ai thjesht do t'i caktojë ngjyrat zonës së maskuar në varësi të maskave dhe vlerave të gamës së ngjyrave.

Lidhje për cv2. bitwise_and:

Hapi 5: Më në fund Shfaqja

Më në fund shfaqet!
Më në fund shfaqet!

Këtu kam përdorur cv2.imshow () bazë për shfaqjen e secilës kornizë si imazh. Meqenëse kam të dhënat e kornizës të ruajtura në variabla, mund t'i marr në imshow (). Këtu kam shfaqur të tre kornizat, origjinale, të maskuara dhe me ngjyra.

Tani duhet të dalim nga laku while. Për këtë, ne thjesht mund të zbatojmë cv2.wait. Key (). Në thelb tregon kohën e pritjes para se të përgjigjeni. Pra, nëse kaloni 0 do të presë pafundësisht dhe 0xFF tregon se arkitektura është 64bit. "ord ()" specifikon karakterin që kur shtypet do të ekzekutojë komandën break në if block dhe do të dalë nga lak.

Pastaj cap.release () mbyll regjistruesin e videos dhe cv2.destroyAllWindows () mbyll të gjitha dritaret e hapura.

Nëse keni ndonjë çështje, ju lutem më tregoni.

Lidhje me kodin burimor:

Recommended: