ዝርዝር ሁኔታ:

OpenCV ን በመጠቀም ቀላል ቀለም-መለየት 6 ደረጃዎች
OpenCV ን በመጠቀም ቀላል ቀለም-መለየት 6 ደረጃዎች

ቪዲዮ: OpenCV ን በመጠቀም ቀላል ቀለም-መለየት 6 ደረጃዎች

ቪዲዮ: OpenCV ን በመጠቀም ቀላል ቀለም-መለየት 6 ደረጃዎች
ቪዲዮ: Computer Vision with Python! Grayscaling Images 2024, ህዳር
Anonim
OpenCV ን በመጠቀም ቀላል ቀለም-መለየት
OpenCV ን በመጠቀም ቀላል ቀለም-መለየት

ሃይ! ዛሬ OpenCV እና Python ን በመጠቀም ከቀጥታ ቪዲዮ አንድን ቀለም የመለየት ቀላል ዘዴን አሳያለሁ።

በመሠረቱ እኔ አስፈላጊውን ቀለም በጀርባው ፍሬም ውስጥ እንዳለ ወይም እንደሌለ እሞክራለሁ እና የ OpenCV ሞጁሎችን በመጠቀም ያንን ክልል እሸፍናለሁ እና በተመሳሳይ ጊዜ ፍሬሙን እገልጻለሁ።

ደረጃ 1 የራስጌ ፋይሎች

የራስጌ ፋይሎች
የራስጌ ፋይሎች

አሁን እዚህ ሁለት የራስጌ ፋይሎችን ማለትም cv2 እና NumPy ን ተጠቅሜያለሁ። በመሠረቱ cv2 በኮዶች ውስጥ ያሉትን ትዕዛዞች ሲጠቀሙ አስፈላጊ የሆኑትን ሁሉንም የ C ++ ፋይሎችን የሚጭን የ OpenCV ቤተ -መጽሐፍት ነው (ሁሉንም ትርጓሜዎች ይ containsል)።

እና Numpy ባለብዙ ልኬት ድርድር ለማከማቸት አስፈላጊ የሆነ የፓይዘን ቤተ -መጽሐፍት ነው። እኛ የቀለም ክልል አስተባባሪዎቻችንን ለማከማቸት እንጠቀማለን።

እና ደነዝ እንደ ኤንፒ በመሰረቱ ከቁጥቋጦ ይልቅ በእያንዳንዱ ጊዜ np ን በመጠቀም የእኛን ኮድ ትንሽ ለማሳጠር ይረዳል።

ደረጃ 2 ቪዲዮውን መቅረጽ

ቪዲዮውን መቅረጽ
ቪዲዮውን መቅረጽ

ፓይዘን በሚጠቀሙበት ጊዜ ይህ በጣም ቀላል ነው። ክፈፎቹን መቅዳት እንዲጀምር እዚህ የቪዲዮ መቅረጫውን ማብራት አለብን።

አሁን በቪዲዮ ቀረፃ ውስጥ ያለው እሴት ካሜራውን ያሳያል ፣ በእኔ ሁኔታ ካሜራው ከእኔ ላፕቶፕ ጋር ተገናኝቷል ፣ ስለዚህ 0።

ለሁለተኛው ካሜራ እና ለሌሎችም በተመሳሳይ ወደ 1 መሄድ ይችላሉ። VideoCapture ነገሩን ለእሱ ይፈጥራል።

ደረጃ 3 ፍሬም መያዝ እና ቀለምን መግለፅ

ፍሬም መያዝ እና ቀለምን መግለፅ
ፍሬም መያዝ እና ቀለምን መግለፅ

አሁን እዚህ ምስሉን ለማውጣት የሚረዳንን የቪዲዮ ቅጽበታዊ ክፈፍ ለመያዝ እንድንችል አንድ ነገር ማድረግ አለብን እና እንደአስፈላጊነቱ በዚያ ላይ መሥራት እንችላለን።

“ሳለ” loop loop በሚፈለገው ጊዜያችን እንድንሮጥ ይረዳናል። አሁን "_, frame = cap.read ()" የተያዘውን ፍሬም ትክክለኛነት ለማረጋገጥ እና ለማከማቸት ያገለግላል። “cap.read () ቡሊያን ተለዋዋጭ ነው እና ክፈፉ በትክክል ከተነበበ እውነት ይመለሳል እና ክፈፎች ካላገኙ ምንም ስህተት አይታይም ፣ በቀላሉ ምንም አያገኙም።

አሁን መስመር 11 እና መስመር 12 በመሠረቱ እኛ ማወቅ ያለብንን የቀለም ክልል ይገልፃሉ። ለዚህ እኔ ሰማያዊ ቀለምን ተጠቀምኩኝ።

ለዚያ ልዩ ቀለም የ BGR እሴቶችን ብቻ መተየብ በሚፈልጉበት በማንኛውም ቀለም መቀጠል ይችላሉ። በእውነተኛው ዓለም ውስጥ አንድን የተወሰነ ቀለም መለየት የእኛን ዓላማ ስለማያገለግል በቁጥጥሩ ድርድር በመጠቀም ሁለት ድርድሮችን መግለፅ የተሻለ ነው።

ለዚህ ፣ የታችኛውን የ BGR እሴቶችን እና የላይኛውን የ BGR እሴቶችን የሚያከማቹ ሁለት ተለዋዋጮችን ገልጫለሁ።

ደረጃ 4 ጭምብል እና ማውጣት

ጭምብል እና ማውጣት
ጭምብል እና ማውጣት

አሁን ክፈፉን ለመሸፈን እና የክፈፉን ቀለም የማውጣት ዋና ተግባር እዚህ ይመጣል። ጭምብል ለማድረግ በ OpenCV ውስጥ ባለው ቤተ -መጽሐፍት ውስጥ የሚገኙትን ቅድመ -የተገለጹ ትዕዛዞችን ተጠቅሜአለሁ። በመሠረቱ ጭምብል የተወሰነውን የክፈፉን ክፍል የማስወገድ ሂደት ነው ፣ ማለትም እኛ በተገለጸው የቀለም ክልል ውስጥ የማይዋኙ የ BGR እሴቶቻቸውን ፒክስሎች እናስወግዳለን እና ይህ በ cv2.inRange ይከናወናል። ከዚያ በኋላ ፣ በፒክሴል እሴቶች ላይ በመመስረት የቀለሙን ክልል ወደ ጭምብል ምስል እንተገብራለን ፣ ለዚህም እኛ cv2.bitwise_and ን እንጠቀማለን ፣ እንደ ጭምብል እና የቀለም ክልል እሴቶች ላይ በመመርኮዝ ቀለሞችን ወደ ጭምብል ክልል ይመድባል።

ለ cv2 አገናኝ። bitwise_and

ደረጃ 5: በመጨረሻ ማሳያ

በመጨረሻ ማሳያ!
በመጨረሻ ማሳያ!

ለእያንዳንዱ ክፈፍ እንደ ምስል ለማሳየት መሠረታዊውን cv2.imshow () እዚህ ተጠቅሜአለሁ። በተለዋዋጮች ውስጥ የተከማቸ የክፈፍ ውሂብ ስላለኝ እኔ በ imshow () ውስጥ ማምጣት እችላለሁ። እዚህ ሦስቱን ክፈፎች ፣ ኦሪጅናል ፣ ጭምብል እና ባለቀለም አሳይቻለሁ።

አሁን ከዝውውር ዑደት መውጣት አለብን። ለዚህ ፣ በቀላሉ cv2.wait. Key () ን መተግበር እንችላለን። በመሠረቱ መልስ ከመስጠቱ በፊት የጥበቃ ጊዜውን ይነግረዋል። ስለዚህ 0 ካለፉ ያለገደብ ይጠብቃል እና 0xFF የሕንፃው 64 ቢት መሆኑን ይነግረዋል። “ord ()” ሲጫን የማገጃ ትዕዛዙን በብሎክ ውስጥ እንደሚፈጽም እና ከሉፕው የሚወጣውን ገጸ -ባህሪን ይገልጻል።

ከዚያ cap.release () የቪዲዮ መቅጃውን ይዘጋል እና cv2.destroyAllWindow () ሁሉንም የተከፈቱ መስኮቶችን ይዘጋል።

ማንኛውም ጉዳይ ካለዎት እባክዎን ያሳውቁኝ።

ወደ ምንጭ ኮድ አገናኝ

የሚመከር: