ዝርዝር ሁኔታ:
- አቅርቦቶች
- ደረጃ 1 ፦ ቤተመፃህፍትን ማስመጣት
- ደረጃ 2 - የትራክ አሞሌዎችን መፍጠር
- ደረጃ 3 - የትራክ አሞሌዎችን ለ hue ፣ ሙሌት እና እሴት መፍጠር
- ደረጃ 4: ምስልን እንዴት ማንበብ እና መጠን መቀየር እንደሚቻል
- ደረጃ 5 በምስል ላይ ለመተግበር የትራክ አሞሌ እሴቶችን ማንበብ
- ደረጃ 6 - ምስልን ማሳየት እና የላይ እና የታችኛው ወሰን ማዘጋጀት
- ደረጃ 7: አሁን የመጨረሻው ደረጃ
- ደረጃ 8 የመጨረሻ ውጤቶች
ቪዲዮ: OpenCV ን በመጠቀም በ Python ውስጥ የቀለም መለየት 8 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:30
ሰላም! ይህ አስተማሪ የ OpenCV ቤተ -መጽሐፍትን በመጠቀም በፓይዘን ውስጥ ካለው ምስል አንድ የተወሰነ ቀለም እንዴት ማውጣት እንደሚቻል ላይ ለመምራት ያገለግላል። ለዚህ ቴክኒክ አዲስ ከሆኑ ከዚያ አይጨነቁ ፣ በዚህ መመሪያ መጨረሻ ላይ የራስዎን የቀለም ማወቂያ ፕሮግራም ማዘጋጀት ይችላሉ።
የሚከተሉት ተግባራት ናቸው ወይም እርስዎ የሚማሩባቸውን ቴክኒኮች ማለት እንችላለን ፣
1. ምስልን እንዴት ማንበብ እንደሚቻል
2. የትራክ አሞሌዎችን እንዴት መፍጠር እንደሚቻል
3. የትራክ አሞሌዎችን በመጠቀም የ Hue ፣ ሙሌት እና የምስል እሴትን ዋጋ እንዴት ማስተካከል እንደሚቻል
4. እና ከዚያ የእርስዎ የመጨረሻ ውጤት ይኖራል
ከዚህ በታች ያያያዝኩትን የውጤት ቪዲዮ ማየት ይችላሉ።
ስለዚህ እንጀምር
አቅርቦቶች
- ፓይዘን 3
- openCV ቤተ -መጽሐፍት
- ደነዘዘ ቤተ -መጽሐፍት
ደረጃ 1 ፦ ቤተመፃህፍትን ማስመጣት
እንደሚታየው ምስሉ ቢጫ ፌራሪ ነው እና ከዚያ ምስል ቢጫ ቀለም ብቻ ለማውጣት ፕሮግራም እናደርጋለን
የመጀመሪያው እርምጃ ቤተመፃህፍቶቻችንን ማስመጣት ይሆናል
1. የ OpenCV ቤተ -መጽሐፍትን ጨምሮ። በፓይዘን ውስጥ cv2 ይባላል
2. የደነዘዘ ቤተ -መጽሐፍት እንደ np። “እንደ” ደነዘዘንን እንደ np እኛን ይፈቅዱልናል ስለሆነም ደብዛዛን ደጋግመን መጻፍ አያስፈልገንም
ደረጃ 2 - የትራክ አሞሌዎችን መፍጠር
የትራክ አሞሌዎች በምስል ውስጥ የ Hue ፣ ሙሌት እና እሴት ዋጋን ለማስተካከል ይፈጠራሉ።
cv2.namedWindow (“TrackBars”) ይህ የኮድ መስመር አዲስ የውጤት መስኮት ለመፍጠር የሚያገለግል ሲሆን የመስኮቱ ስም እንደ ትራክቦር (የተሰጠ ማንኛውንም ስም መስጠት ይችላሉ)
cv2.resizeWindow ("TrackBars" ፣ 600, 250) ይህ ተግባር የመስኮትን መጠን ለመለወጥ ያገለግላል። የትራክ አሞሌዎች መስኮት መጠኑን ለመለወጥ ስለምፈልግ “TrackBars” ለየትኛው መስኮት መጠኑን መለወጥ እንደሚፈልጉ ነው ያንን ስም የፃፍኩት። በሁለት ኢንቲጀሮች ተከታትሏል። እነዚያ ሁለት ኢንቲጀሮች ስፋት እና ቁመት ናቸው። መጠኑን ለመቀየር በእነዚህ ሁለት ቁጥሮች ዙሪያ መጫወት ይችላሉ
ደረጃ 3 - የትራክ አሞሌዎችን ለ hue ፣ ሙሌት እና እሴት መፍጠር
አሁን ሁዌ ፣ ሙሌት እና እሴት አጠቃላይ 6 የትራክ አሞሌዎችን እንፈጥራለን። እያንዳንዳቸው ሁለት ማለትም 1 ለዝቅተኛ እና 1 ለከፍተኛው ይኖራቸዋል። እኛ የ OpenCV የመፍጠር ትራክባር ተግባርን እንጠቀማለን። በመጀመሪያ የዚህን ተግባር አገባብ እናያለን።
cv2.createTrackbar ("WINDOWNAME" ፣ "MAINWINDOWNAME" ፣ "RANGE")። ይህ ግራ የሚያጋባ ሊሆን ይችላል ነገር ግን አይጨነቁ እኛ እያንዳንዱን እርምጃ እናሳልፋለን። በክፍት ሲቪ እሴቶች ውስጥ 179 ፣ ሙሌት 255 እና እሴቱ 255 መሆኑን አንድ ነገር ያስታውሱ
1. TrackBar ለ hue min በመፍጠር ላይ
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, ባዶ)
በዚህ ሁን ደቂቃ ውስጥ የትራክ አሞሌው ስም ነው ፣ ትራክባርስ ዋናው መስኮት ነው ፣ 0 ተንሸራታችን የሚገኝበት ቦታ ነው እና 179 ክልል ማለት ብር ከ 0-179 ይንቀሳቀሳል ማለት ነው።
2. TrackBar ለ hue max መፍጠር -
cv2. Treckbar (“Hue max” ፣ “TrackBars” ፣ 179 ፣ 179 ፣ ባዶ)
በዚህ ሁዌ max ውስጥ የትራክ አሞሌ ስም ፣ የትራክ አሞሌዎች ዋናው መስኮት ነው ፣ 179 ተንሸራታችን የሚገኝበት እና 179 ከፍተኛው ክልል ማለት ብር ከ 179-0 ይንቀሳቀሳል ማለት ነው።
3. በተመሳሳይ ሁኔታ በምስሉ ላይ እንደሚታየው ለሳታ ደቂቃ ፣ ለሳታ ከፍተኛ ፣ ለቫል ደቂቃ እና ለቫል ማክስ ደረጃዎቹን ይድገሙ
ነጭው ዳራ ያለው ምስል የውጤት ምስል ነው። የትራክ አሞሌዎችዎ እንዴት እንደሚታዩ
ደረጃ 4: ምስልን እንዴት ማንበብ እና መጠን መቀየር እንደሚቻል
cv2.imread () ምስሉን እንዲያነቡ ያስችልዎታል። አንድ አስፈላጊ አስተሳሰብ የምስልዎ ሥፍራ ፕሮግራሙ በሚቀመጥበት በተመሳሳይ አቃፊ ውስጥ መሆን እንዳለበት ማስታወስ አለብዎት። እኛ ምስሉን እስኪያነብ ድረስ መሮጥ ስላለበት ወይም ሁኔታው እውነት እስኪሆን ድረስ መናገር ስንችል loop ሳለን እናስገባለን
img = cv2.imread ("ferrari.jpg")
- በዚህ ውስጥ እኔ ምስሉን የማከማችበትን ተለዋዋጭ ስም "img" ፈጥረዋል
- በ cv2.imread ውስጥ በእጥፍ ጥቅስ ውስጥ የቅጥያውን በመጠቀም የምስሉን ስም ይፃፉ
የምስል መጠንን ለመለወጥ እኛ የ cv2.resize ተግባርን እንጠቀማለን። ይህ ክፍል እንደ አማራጭ ነው ፣ መጠኑን መለወጥ ከፈለጉ ይህንን ተግባር መጠቀም ይችላሉ
በ cv2.resize መጀመሪያ ምስሉ የተከማቸበትን ተለዋዋጭ ስም ከዚያም ስፋቱን እና ቁመቱን ይፃፉ።
ደረጃ 5 በምስል ላይ ለመተግበር የትራክ አሞሌ እሴቶችን ማንበብ
እሺ ስለዚህ አሁን በምስላችን ላይ ተግባራዊ ለማድረግ የትራክ አሞሌ አሞሌ እሴቶችን እናነባለን። Cv2.getTrackbarPos () ተግባርን በመጠቀም እሴቶቹን እናገኛለን።
በዚያ ክፍል እንጀምር…
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
ከላይ ባለው ዓረፍተ ነገር እኔ ሁዌ ደቂቃን የማከማችበትን ተለዋዋጭ ስም h_min እፈጥራለሁ። ስለዚህ በ cv2.getTrackbarPos 1 ኛ ክርክር የ hue min እሴቶችን ስለምፈልግ (የፊደል አጻጻፉ ልክ እንደ tratbarbar ተግባር በትክክል አንድ መሆን አለበት) እና 2 ኛ ክርክር የሚመለከተው የትራክ አሞሌ መስኮት ስም ይሆናል።
- ከላይ ባለው ምስል እንደሚታየው ለ h_max እና ለተቀሩት ተግባራት ተመሳሳይ ሂደቱን ይድገሙ እና ከዚያ ህትመትን () በመጠቀም ሁሉንም እሴቶች ያትሙ
- ውጤቱ በሁለተኛው ምስል ላይ ይታያል። የ h_min ፣ h_max ፣ s_min ፣ s_max ፣ v_min ፣ s_max እሴቶችን እያሳተመ ነው
ደረጃ 6 - ምስልን ማሳየት እና የላይ እና የታችኛው ወሰን ማዘጋጀት
አሁን የምስል ፣ የቀለም ሙሌት እና ከፍተኛው እሴት አለን ፣ እኛ የአንድን ምስል የተወሰነ የቀለም ውፅዓት እናገኝ ዘንድ ምስሉን ለማጣራት ይህንን እሴት እንጠቀማለን።
እኛ cv2.inRange ተግባርን በመጠቀም ለዚህ ጭምብል እንፈጥራለን። እናም ከዚያ በፊት የላይኛው እና የታችኛውን የ hue ፣ ሙሌት እና እሴት ገደብ እናዘጋጃለን
ስለዚህ ተለዋዋጭ ስም “ታች” ይፍጠሩ እና የቁጥብ ድርድር ተግባርን በመጠቀም ለ 3 ቱም የ min ን ክልል እንደሚከተለው ያዘጋጁ
ታች = np.array ([h_min ፣ s_min ፣ v_min])
ለላይኛው ተመሳሳይ እርምጃ ይድገሙ
የላይኛው = np.array ([h_max ፣ s_max ፣ v_max])
አሁን እንደሚከተለው እንከተላለን
ጭንብል = cv2.inRange (መጠን ፣ ታች ፣ የላይኛው) ውስጥ cv2.inRang የ 1 ኛ ክርክር የእኔ የመጨረሻ ምስል የተከማቸበት ተለዋዋጭ ይሆናል ፣ 2 ኛ ክርክር ዝቅተኛ ወሰን እና 3 ኛ ክርክር የላይኛው ገደብ ይሆናል።
አሁን ዋናውን ምስል እና ጭምብል እናሳያለን። ለማሳየት የ cv2.imshow () ተግባርን እንጠቀማለን
cv2.imshow ("img" ፣ መጠን) ይህ ዋናውን ምስል ለማሳየት ነው። 1 ኛ ክርክር እርስዎ የሚፈልጉትን ማንኛውንም ስም መስጠት የሚችሉበት የመስኮቱ ስም ነው እና 2 ኛ ክርክር እርስዎ ለማሳየት የሚፈልጉት ዋናው ምስሌ የተከማቸበት ተለዋዋጭ ነው።
በተመሳሳይ ጭምብል ለማድረግ እርምጃዎችን ይድገሙ
cv2.imshow (“ውፅዓት” ፣ ጭንብል)
ደረጃ 7: አሁን የመጨረሻው ደረጃ
በዚህ የመጨረሻ ደረጃ ላይ የመኪናውን ቀለም አውጥተን እናሳያለን።
እኔ ተለዋዋጭ የስም ውጤት ፈጥረዋል። እንደገና የሚፈልጉትን ማንኛውንም ስም መስጠት ይችላሉ። ስለዚህ እኛ ምስሎችን በአንድ ላይ የምንጨምርበት እና አዲስ ምስል የምንፈጥርበትን የ cv2.bitwise_and () ተግባር እንጠቀማለን። እና በሁለቱም ምስል ውስጥ ያሉት ፒክሰሎች ባሉበት ቦታ ያንን እንደ አዎ ወይም “1” ይወስዳል።
ውጤት = cv2.bitwise_and (መጠኑን ፣ መጠኑን ፣ ጭምብል = ጭምብል)
- በዚህ ውስጥ 1 ኛ ክርክር የእኛ ምስል ይሆናል
- 2 ኛ ክርክር እንዲሁ የእኛ የመጀመሪያ ምስል ይሆናል ግን ከዚህ በፊት የፈጠርነው ጭምብል ተተግብሯል
- እና በመጨረሻም የኢሜይሽን ተግባርን በመጠቀም ውጤቱን ያሳዩ
ይህንን የመጨረሻ ደረጃ ለጥፍ ብቻ ይቅዱ መዘግየት ብቻ ነው እና በቁልፍ ሰሌዳው ላይ “ሀ” ን በመጫን ከውጤት መስኮቱ መውጣት ይችላሉ
ደረጃ 8 የመጨረሻ ውጤቶች
የሚመከር:
የማይነካ የበር ደወል እንዴት እንደሚሠራ ፣ የሰውነት ሙቀት መጠን መለየት ፣ GY-906 ፣ 433MHz አርዱዲኖን በመጠቀም 3 ደረጃዎች
የማይነካ የበር ደወል እንዴት እንደሚሠራ ፣ የሰውነት ሙቀት መጠን መለየት ፣ ጂአይ -966 ፣ 433 ሜኸ አርዱinoኖን በመጠቀም-ዛሬ የማይነካ የበር ደወል እንሠራለን ፣ የሰውነትዎን የሙቀት መጠን ይለያል። አሁን ባለው ሁኔታ ፣ አንድ ሰው የሰውነት ሙቀት ከተለመደው ከፍ ያለ መሆኑን ፣ አንድ ሰው በሚቆልፍበት ጊዜ ማወቅ በጣም አስፈላጊ ነው። ይህ ፕሮጀክት ማንኛውንም ከተገኘ ቀይ ብርሃን ያሳያል
የቀለም መለየት ቀለም ማሽን 4 ደረጃዎች
የቀለም ማወቂያ ቀለም ማሽን - የቀለም ማወቂያ ቀለም ማሽን በዙሪያዎ ያሉትን ቀለሞች ይቅዱ እና ከእነሱ ጋር እንዲስሉ ያስችልዎታል። የዋና ቀለሞች ቀለም ካለዎት የሚፈልጉትን ቀለም ለመገንዘብ እና ለማደባለቅ የ RGB ቀለም ዳሳሽ መጠቀም ይችላሉ። ግን ያስታውሱ ፣ ደማቅ-ቀለም ያለውን ነገር ይጠቀሙ
OpenCV ን በመጠቀም ቀላል ቀለም-መለየት 6 ደረጃዎች
OpenCV ን በመጠቀም ቀላል ቀለም-መለየት-ሰላም! ዛሬ እኔ OpenCV ን እና ፓይዘን በመጠቀም ከቀጥታ ቪዲዮ ቀለምን የመለየት ቀላል ዘዴን አሳያለሁ። በመሠረቱ እኔ የሚፈልገውን ቀለም በጀርባው ፍሬም ውስጥ አለ ወይም እንደሌለ እሞክራለሁ እና የ OpenCV ሞጁሎችን በመጠቀም ያንን ክልል እሸፍናለሁ
የፊት እና የዓይን መለየት ከ Raspberry Pi Zero እና Opencv ጋር: 3 ደረጃዎች
ከ Raspberry Pi Zero እና Opencv ጋር ፊት እና አይን ማወቅ - በዚህ ትምህርት ውስጥ የራስበሪ ፒን እና ኦፕኮቭን በመጠቀም እንዴት ፊትን እና ዓይንን መለየት እንደሚችሉ ለማሳየት እሞክራለሁ። ይህ በ opencv ላይ የመጀመሪያ አስተማሪዬ ነው። በክሬስቤሪ ውስጥ ክፍት ሲቪን ለማቋቋም ብዙ ትምህርቶችን ተከታተልኩ ግን አንዳንድ ስህተቶች ባጋጠሙኝ ቁጥር። ለማንኛውም እኔ
RGB LED ን በመጠቀም የቀለም መለየት 4 ደረጃዎች
RGB LED ን በመጠቀም የቀለም መለየት - የነገሩን ቀለም ለመለየት አውቶማቲክ መንገድ መቼም ፈልገው ያውቃሉ? በእቃው ላይ የአንድ የተወሰነ ቀለም ብርሃን በማብራት እና ምን ያህል ብርሃን ወደ ኋላ እንደሚንፀባረቅ በማየት ፣ ነገሩ ምን ዓይነት ቀለም እንዳለው ማወቅ ይችላሉ። ለምሳሌ ፣ ቀይ መብራት ካበሩ