ዝርዝር ሁኔታ:

OpenCV መሰረታዊ ፕሮጀክቶች 5 ደረጃዎች
OpenCV መሰረታዊ ፕሮጀክቶች 5 ደረጃዎች

ቪዲዮ: OpenCV መሰረታዊ ፕሮጀክቶች 5 ደረጃዎች

ቪዲዮ: OpenCV መሰረታዊ ፕሮጀክቶች 5 ደረጃዎች
ቪዲዮ: HIKVISION : How to set up IP Camera | NETVN 2024, ሀምሌ
Anonim
OpenCV መሰረታዊ ፕሮጄክቶች
OpenCV መሰረታዊ ፕሮጄክቶች

በዚህ ፕሮጀክት ውስጥ የቀጥታ ቪዲዮ ዥረት ባካተቱ በ 4 ቀላል ፕሮጄክቶች በኩል አንዳንድ መሠረታዊ የ OpenCV ተግባራዊነትን እንመረምራለን። እነዚህ የፊት ለይቶ ማወቅ ፣ የጀርባ ማስወገጃ ፣ የጠርዝ ልዩ የእይታ ማሳያ እና የቀጥታ ቪዲዮ ዥረት ላይ የማደብዘዝ ውጤት መተግበር ናቸው። እነዚህን ፕሮጀክቶች ለመሞከር ዋናው ዓላማዬ በኮምፒዩተር ራዕይ መስክ ውስጥ በጥልቀት ለመመርመር ስላሰብኩ በ OpenCV በይነገጽ እግሮቼን እርጥብ ማድረጉ ብቻ ነበር።

አቅርቦቶች

  • Python ን የሚያሄድ ኮምፒተር
  • የ CV ቤተ -መጽሐፍት ፣ የታሸገ ቤተ -መጽሐፍት ፣ የታክቲንግ ቤተ -መጽሐፍት ፣ የ sys ቤተ -መጽሐፍትን ይክፈቱ
  • ከኮምፒዩተር ጋር ለመገናኘት ካሜራ (ኮምፒዩተሩ አንድ ካላካተተ)
  • የፕሮግራሙ ፓይዘን ፋይል (በዚህ ትምህርት ውስጥ ተካትቷል)
  • haarcascade xml ፋይል (በዚህ መመሪያ ውስጥ ተካትቷል)

ደረጃ 1 የ FaceDetect ተግባር

FaceDetect ተግባር
FaceDetect ተግባር
FaceDetect ተግባር
FaceDetect ተግባር

ይህ ተግባር የካሜራዎን ቪዲዮ በሚያነሳቸው በማንኛውም ፊቶች ላይ አረንጓዴ ካሬዎች ያሳያል። በኮዱ ውስጥ እኛ የምንይዝበትን ቪዲዮ “መያዝ” በተሰኘው ነገር ውስጥ ለማከማቸት የ cv2. VideoCapture () ተግባርን እንጠቀማለን። CAPTURE_INDEX በኮምፒተርዎ የቪዲዮ ግቤት ዝርዝር ውስጥ ከካሜራዎ መረጃ ጠቋሚ ጋር የሚዛመድ በኮምፒተርዎ የተቀመጠ ቁጥር ነው። ከኮምፒዩተርዎ ጋር የተገናኘ ውጫዊ ካሜራ ከሌለዎት 0 ወይም 1 መስራት አለበት።

የፊት_ካስካድ ነገር የ ‹cascadeClassifier› ተግባርን እና በ OpenCV github ውስጥ የተገኘውን‹ haarcascade_frontalface_default.xml ›ፋይል በመጠቀም ተጀምሯል። በዝርዝሩ ውስጥ የተገኙትን ፊቶች በዝርዝሩ ውስጥ የተገኙትን ፊቶች ለማከማቸት ይህንን እንጠቀማለን ፊቶች x አስተባባሪ ፣ y አስተባባሪ ፣ ስፋት እና ቁመት የሚይዙ አራት ፊደላት-ቱፕል። ከዚያ የ cv2.rectangle ተግባርን በመጠቀም ፊቱን በደንብ የሚዘጋ አራት ማእዘን እንሳሉ

ከዚህ ቪዲዮ ፣ OpenCV ቀረጻን () ን በመጠቀም (loop) በመጠቀም እና ምስሉን “img” ብለን በጠራነው ፍሬም ውስጥ ብዙ ምስሎችን ይይዛል። እያንዳንዱ ምስል እኛ እንደፈለግነው ይተረጎማል እና ይቀየራል። ለ FaceDetect ፣ በመጀመሪያው ልኬት ውስጥ የተሰጠውን ማንኛውንም ምስል በሁለተኛው ግቤት ውስጥ ወደተጠቀሰው የተወሰነ የምስል ቀለም የሚቀይር የ cvtColor ተግባርን በመጠቀም ምስሉን ግራጫ እናደርጋለን። ለሁለተኛው ግቤት ተቀባይነት ያላቸው እሴቶች ዝርዝር በመስመር ላይ ሊገኝ ይችላል። ከዚያ የመስኮቱ ስም እና የምስል ክፈፉ እንዲታዩ ሕብረቁምፊ የሚወስድ imshow () ተግባርን በመጠቀም “ፊቱን መለየት” በሚባል መስኮት ውስጥ ምስሉን እናሳያለን።

በመጨረሻም ተጠቃሚው የ cv2.waitKey () ተግባርን በመጠቀም የ q ቁልፍን እንዲያስገባ እንጠብቃለን። የ 0xFF ጭምብል ለ 64 ቢት ኮምፒተሮች እንደ ኮንቬንሽን ሆኖ ያገለግላል። ተጠቃሚው የቪዲዮ ዥረቱን ከጨረሰ በኋላ ፣ የ FaceDetect ተግባር የመያዣውን ነገር ነፃ ያደርገዋል ከዚያም በ OpenCV በይነገጽ ስር የተከፈቱ ማናቸውንም ሌሎች መስኮቶችን ያጠፋል። ሁሉም ሌሎች ተግባራት ተመሳሳይ የንድፍ መዋቅር ይከተላሉ።

ደረጃ 2 ተግባርን ዳራ አስወግድ

ዳራ ተግባሩን ያስወግዱ
ዳራ ተግባሩን ያስወግዱ
ዳራ ተግባሩን ያስወግዱ
ዳራ ተግባሩን ያስወግዱ

ይህ ተግባር የቪዲዮችንን የጀርባ ክፍል ለማስወገድ እና የፊት ምስሉን ብቻ ለመተው ይሞክራል። የተለያዩ ዕቃዎች/ ፍላጎቶች ወደ ክፈፉ ሲገቡ የሚነቃውን የመብራት ማስተካከያ ተግባር ስለሚጠቀሙ በአንዳንድ ካሜራዎች ላይ ላይሰራ ይችላል። የእርስዎ ዳራ የማስወገድ ተግባር የማይሠራ ከሆነ ፣ አይበሳጩ- ካሜራዎ ብቻ ሊሆን ይችላል!

ይህንን ተግባር ለመጠቀም ፣ ከካሜራ ክፈፉ ራቁ እና የበስተጀርባውን ምስል ለመያዝ የ “መ” ቁልፍን ይጫኑ። ለመያዝ የሚፈልጉት በጀርባ ውስጥ ምንም የሚንቀሳቀሱ ነገሮች አለመኖራቸው አስፈላጊ ነው። ከዚያ ወደ ካሜራ ክፈፍ ተመልሰን መመለስ እንችላለን። ተግባሩ ከሰራ ፣ ተጠቃሚው እራሱን በተግባሩ ቪዲዮ ዥረት ላይ ብቻ ማየት አለበት። በፊተኛው ምስል ላይ ያለ ማንኛውም ጫጫታ/ጥቁር ነጠብጣቦች የካሜራው የመብራት ማስተካከያ ውጤት ሊሆን ይችላል። ሌላ ዳራ ለመያዝ ፣ እንደገና ለመጀመር የ “r” ቁልፍን ይጫኑ ፣ ከዚያ እንደገና “መ” ን ይጫኑ።

ለዚህ ተግባር አንዳንድ ቁልፍ መወሰኛዎች ተጠቃሚው የ d ቁልፍን እንደጫኑ ወዲያውኑ የሚነሳውን የ “ባንዲራ” ቡሊያን አጠቃቀም ነው። ይህ ዳራውን ይይዛል እና በተግባሩ ከተለቀቀው ቪዲዮ እንድናስወግድ ያስችለናል። ማንኛውንም ተንቀሳቃሽ ነገር ከሚይዘው የፊት ምስል ለመለየት የኋላ ምስሉን በ ref_img ውስጥ ለማከማቸት ዓላማችን ነው። እኛ የከርሰ ምድር ምስልን ከበስተጀርባ ምስል እና በተቃራኒው የ cv2.subtract () ተግባርን እንጠቀማለን ፣ ከዚያ በኋላ ወዲያውኑ በሁለቱ ምስሎች ውስጥ ማንኛውንም ጥቃቅን ልዩነቶች ይሰርዙ። ዳራው ጥቁር ሆኖበታል።

Fgmask በእነዚህ ሁለት ምስሎች መካከል ያለውን ልዩነት በመጠቀም የተሰራ ሲሆን ከዚያ OpenCV cv2.bitwise_and () ተግባሩን በመጠቀም በተግባሮች የቪዲዮ ዥረት ላይ ይተገበራል።

ደረጃ 3 - የቪዲዮEdges ተግባር

የቪዲዮEdges ተግባር
የቪዲዮEdges ተግባር
የቪዲዮEdges ተግባር
የቪዲዮEdges ተግባር

ይህ ተግባር የእኛን የቀጥታ ቪዲዮ ዥረት ይመልሳል ፣ ነገር ግን ሁሉም ነገር ጥቁር ሆኖ ሳለ ሊታወቁ የሚችሉ ጠርዞች ነጭ ሆነው ተሠርተዋል። ይህንን ተግባር ከሌሎቹ ተግባራት የሚለየው የመጀመሪያውን ቪዲዮችንን ከ RBG ቅርጸት ወደ ኤችኤስቪ መለወጥ ነው ፣ እሱም ለቆመ ፣ ሙሌት እና ልዩነት- ከቪዲዮ ብርሃን እና ቀለም የማቀናበር የተለየ ዘዴ ነው። በዚህ ዘዴ ማጣሪያን (ቀይ_ሎትን ወደ ቀይ_ከፍተኛ) በመተግበር በቪዲዮው ውስጥ ያሉትን ዝርዝር መግለጫዎች በቀላሉ መለየት እንችላለን።

ካኒ ጠርዝ ማወቂያ በምስል ውስጥ ያሉትን ጠርዞች ለመለየት ጥቅም ላይ ይውላል። ግራጫ ልኬት ምስልን እንደ ግብዓት ይቀበላል እና ባለብዙ ደረጃ ስልተ -ቀመር ይጠቀማል።

ደረጃ 4: የቪዲዮ ብሉር ተግባር

VideoBlur ተግባር
VideoBlur ተግባር
VideoBlur ተግባር
VideoBlur ተግባር

ይህ ተግባር በእኛ ቪዲዮ ዥረት ላይ የማደብዘዝ ውጤት ለማከል ያገለግላል። ተግባሩ ቀላል የእኛን ፍሬም ላይ የ GaussianBlur cv2 ተግባርን ይጠራል። በ gaussianBlur ተግባር ላይ ተጨማሪ መረጃ እዚህ ይገኛል-

opencv-python-tutroals.readthedocs.io/en/l…

ደረጃ 5 - ማሻሻያዎች

የመብራት ማስተካከያ ተግባር የሌለውን ካሜራ መጠቀም ስለሚያስፈልገው በዚህ ፕሮጀክት ውስጥ በጣም ስሱ ተግባር የጀርባ ማስወገጃ ተግባር ነው። በ OpenCV ቤተ -መጽሐፍት ውስጥ ይህንን የመብራት ማስተካከያ (ሂሳብ) ማስተካከል እና ዳራውን (ከአረንጓዴ ማያ ገጽ ጋር የሚመሳሰል) በቀስታ ሊያስወግድ የሚችል የተሻለ የተግባር ስብስብ ሊኖር ይችላል።

እኛ (x, y) መጋጠሚያዎችን ከመመለስ በስተቀር የበለጠ ተግባር ያላቸውን ነገሮች ሊያፈሩ የሚችሉ ሌሎች የፊት ማወቂያ ተግባሮችን ልንጠቀም እንችላለን። ምናልባት ፊቶችን የማስታወስ ችሎታ ያለው የፊት ለይቶ የማወቅ ፕሮግራም ለመተግበር በጣም ከባድ ላይሆን ይችላል።

የማደብዘዝ ተግባሩ በተጠቃሚው በሚታወቅ ቁጥጥር በኩል የበለጠ ማበጀት ይችላል። ለምሳሌ ፣ ተጠቃሚው የማደብዘዝ ውጤቱን ጥንካሬ ለማስተካከል ወይም ለማደብዘዝ በፍሬም ውስጥ የተወሰነ ቦታ መምረጥ ይፈልግ ይሆናል።

የሚመከር: