Мазмуну:
- Жабдуулар
- 1 -кадам: Китепканаларды импорттоо
- 2 -кадам: Трек тилкелерин түзүү
- 3 -кадам: Реңк, каныктыруу жана баалуулук үчүн TrackBars түзүү
- 4 -кадам: Сүрөттү кантип окуу жана өлчөмүн өзгөртүү
- 5 -кадам: Сүрөттө колдонуу үчүн Track Bar баалуулуктарын окуу
- 6 -кадам: Сүрөттү көрсөтүү жана жогорку жана төмөнкү чекти коюу
- 7 -кадам: Эми акыркы кадам
- 8 -кадам: Акыркы жыйынтыктар
Video: OpenCV менен Pythonдо түстү аныктоо: 8 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Салам! Бул көрсөтмө openCV китепканасын колдонуп, питондогу сүрөттөн белгилүү бир түстү кантип алуу керектиги үчүн колдонулат. Эгерде сиз бул техниканы жаңы колдонуп жатсаңыз, кабатыр болбоңуз, бул колдонмонун аягында сиз өзүңүздүн түс аныктоо программаңызды программалай аласыз.
Төмөндө функциялар бар же биз үйрөнө турган ыкмаларды айта алабыз, 1. Сүрөттү кантип окуу керек
2. Трек тилкелерин кантип түзүү керек
3. Трюк тилкелеринин жардамы менен Hue, Saturation жана сүрөттүн маанисин кантип тууралоо керек
4. Анан сиздин акыркы чыгарылышыңыз болот
Сиз төмөндө тиркелген чыгарманын видеосун көрө аласыз.
Ошентип, баштайлы
Жабдуулар
- Python 3
- openCV китепканасы
- numpy китепканасы
1 -кадам: Китепканаларды импорттоо
Сүрөт көрсөтүлгөндөй сары феррари болуп саналат жана биз ал сүрөттөн сары түстү гана чыгарууну программалайбыз
Биринчи кадам биздин китепканаларды импорттоо болот
1. OpenCV китепканасын кошкондо. Бул питондо cv2 деп аталат
2. Анын ичинде numpy китепканасы np катары. "As" бизге numpy катары np катары берет, ошондуктан numpy кайра -кайра жазуунун кажети жок
2 -кадам: Трек тилкелерин түзүү
Трек тилкелери бир сүрөттөлүштөгү Hue, Saturation жана Value маанисин тууралоо үчүн түзүлгөн.
cv2.namedWindow ("TrackBars") Бул код сабы жаңы чыгаруу терезесин түзүү үчүн колдонулат жана терезенин аталышы TrackBars катары берилет (Сиз каалаган ысымды бере аласыз)
cv2.resizeWindow ("TrackBars", 600, 250) Бул функция терезенин өлчөмүн өзгөртүү үчүн колдонулат. "TrackBars" - бул кайсы терезенин өлчөмүн өзгөрткүңүз келет, анткени мен TrackBars терезесинин өлчөмүн өзгөрткүм келди, мен бул атты жаздым. Артынан эки бүтүн сан келет. Бул эки бүтүн сан туурасы жана бийиктиги. Өлчөмүн өзгөртүү үчүн ошол эки сан менен ойной аласыз
3 -кадам: Реңк, каныктыруу жана баалуулук үчүн TrackBars түзүү
Эми биз Hue, Saturation жана баалуулук үчүн жалпы 6 TrackBars түзөбүз. Ар биринде экиге, башкача айтканда, минимумга 1 жана максимумга 1 болот. Биз openCVдин createTrackbar функциясын колдонобуз. Алгач бул функциянын синтаксисин көрөбүз.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Бул түшүнүксүз болушу мүмкүн, бирок кабатыр болбоңуз, биз ар бир кадамды басып өтөбүз. OpenCVде түстүн 179, каныктыруу 255 жана мааниси 255 экенин эстен чыгарбаңыз.
1. Hack min үчүн TrackBar түзүү:
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, бош)
Бул реңкте трек тилкесинин аталышы, TrackBars-негизги терезе, 0-биздин слайдерибиз турган позиция жана 179-диапазон, силдер 0-179дан жылат дегенди билдирет
2. Hack max үчүн TrackBar түзүү:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, бош)
Бул Hue maxта трек тилкесинин аты, TrackBars-негизги терезе, 179-бул биздин слайдерибиз турган позиция жана 179-максималдуу диапазон, силдер 179-0ден жылат дегенди билдирет
3. Окшош түрдө сүрөттө көрсөтүлгөндөй min min, sat max, val min жана val max үчүн кадамдарды кайталаңыз
Ак фону бар сүрөт - бул чыгаруу сүрөтү. Сиздин трек тилкелериңиз ушундай көрүнөт
4 -кадам: Сүрөттү кантип окуу жана өлчөмүн өзгөртүү
cv2.imread () сүрөттү окууга мүмкүнчүлүк берет. Бир маанилүү ой, сиз сүрөтүңүздүн жайгашкан жери программа сакталган папкада болушу керек экенин унутпашыңыз керек. Биз while циклин киргизебиз, анткени ал сүрөттү окуп бүтмөйүнчө иштеши керек же шарты туура келгенге чейин айта алабыз
img = cv2.imread ("ferrari.jpg")
- Мында мен "img" деген өзгөрмөлүү ат түздүм, анда мен сүрөттү сактап жатам
- Cv2.imread ичине кош тырмакчанын ичинде кеңейтүүсү бар сүрөттүн атын жазыңыз
Сүрөттүн өлчөмүн өзгөртүү үчүн cv2.resize функциясын колдонобуз. Бул бөлүк милдеттүү эмес, эгер сиз өлчөмүн өзгөрткүңүз келсе, анда бул функцияны колдоно аласыз
Cv2.resize ичине алгач сүрөт сакталган өзгөрмөнүн атын жазыңыз, андан кийин анын туурасы менен бийиктигин
5 -кадам: Сүрөттө колдонуу үчүн Track Bar баалуулуктарын окуу
Макул, азыр биз трек тилкесинин маанилерин окуйбуз, ошондуктан аны биздин сүрөтүбүзгө колдоно алабыз. Биз cv2.getTrackbarPos () функциясын колдонуу менен баалуулуктарды алабыз.
Ошол бөлүктөн баштайлы …
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
Жогорудагы билдирүүдө мен h_min өзгөрмөлүү атын түзүп жатам, анда мен Hue min маанисин сактайм. Ошентип, cv2.getTrackbarPos ичиндеги 1 -аргумент "Hue min" болмок, анткени мен hue min маанилерин каалайм (орфография createTrackbar функциясы менен бирдей болушу керек) жана 2 -аргумент ал таандык болгон трек тилкесинин терезесинин аталышы болмок.
- Жогорудагы сүрөттө көрсөтүлгөндөй h_max жана калган функциялар үчүн ошол эле процессти кайталап, андан кийин print () аркылуу бардык баалуулуктарды басып чыгарыңыз.
- Чыгаруу экинчи сүрөттө көрсөтүлгөн. Бул h_min, h_max, s_min, s_max, v_min, s_max маанилерин басып чыгарууда
6 -кадам: Сүрөттү көрсөтүү жана жогорку жана төмөнкү чекти коюу
Азыр бизде түстүн, каныкуунун жана маанинин минималдуу жана максималдуу мааниси бар, биз бул маанини сүрөттү чыпкалоо үчүн колдонобуз, андыктан биз сүрөттүн өзгөчө түсүн чыгара алабыз.
Бул үчүн cv2.inRange функциясын колдонуп маска түзөбүз. Жана ага чейин биз түстүн, каныктыктын жана маанинин жогорку жана төмөнкү чегин коёбуз
Ошентип, "төмөн" деген өзгөрмөнүн атын түзүңүз жана numpy массивинин функциясын колдонуу менен минимумдун диапазонун төмөнкүдөй орнотуңуз
төмөн = 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 -аргумент биздин имидж болот
- Экинчи аргумент ошондой эле биздин баштапкы сүрөтүбүз болот, бирок андан кийин биз мурда жасаган маска колдонулат
- Жана акыры жөн эле натыйжаны imshow функциясын колдонуп көрсөтүңүз
Бул акыркы кадамды көчүрүү жөн эле кечигүү жана клавиатурадан "а" басуу менен чыгаруу терезесинен чыга аласыз
8 -кадам: Акыркы жыйынтыктар
Сунушталууда:
Ысык орун: Түстү алмаштыруучу жылытуучу жаздык жасаңыз: 7 кадам (сүрөттөр менен)
Ысык орун: Түсүн өзгөрткөн жылытуучу жаздык куруңуз: Кыштын суук күндөрүндө өзүңүздү тосту кармагыңыз келеби? Hot Seat - бул эң кызыктуу эки электрондук текстиль мүмкүнчүлүгүн колдонгон долбоор - түсүн өзгөртүү жана жылуулук! Биз жылый турган отургуч жаздыкчасын курабыз жана ал кетүүгө даяр болгондо ал ачыкка чыгат
OpenCV менен жөнөкөй түстөрдү аныктоо: 6 кадам
OpenCV менен жөнөкөй түстөрдү аныктоо: Саламатсызбы! Бүгүн мен OpenCV жана python аркылуу жандуу видеодон түстү табуунун жөнөкөй ыкмасын көрсөтөйүн деп жатам. Негизинен мен керектүү түстүн фондо кадрда бар же жок экенин текшерем жана OpenCV модулдарын колдонуп, мен ошол аймакты маска кылам жана
Түстү өзгөртүү була -оптикалык кездеме: 10 кадам (сүрөттөр менен)
Түстү өзгөртүү була -оптикалык кездеме: Болжол менен $ 150 бир короодо жана көптөгөн чектөөлөр менен, рынокто була -оптикалык кездеме эң жеткиликтүү материал эмес. Бирок өзүңүздүн була -оптикалык жипчеңиз, тюль жана светодиоддоруңуз менен өзүңүздүн каалаган формаңызда принин бир бөлүгүн түзө аласыз
Raspberry Pi Zero жана Opencv менен жүздү жана көздү аныктоо: 3 кадам
Raspberry Pi Zero жана Opencv менен жүздү жана көздү аныктоо: Бул көрсөтмөдө мен малина pi жана opencvдин жардамы менен жүздү жана көздү кантип аныктоого болорун көрсөтөм. Бул менин opencv боюнча биринчи көрсөтмөм. Мен малинада ачык резюме орнотуу үчүн көптөгөн окуу куралдарын ээрчип жүрдүм, бирок ар бир жолу кээ бир каталар менен уруп жаттым. Эмнеси болсо да мен
RGB LEDди колдонуу менен түстү аныктоо: 4 кадам
RGB LEDдин жардамы менен түстү аныктоо: Сиз качандыр бир убакта объекттин түсүн аныктоонун автоматташтырылган жолун кааладыңыз беле? Белгилүү бир түстүн нурун объектке чачып, канча жарыктын артка чагылышын карап, бул нерсенин түсү кандай экенин биле аласыз. Мисалы, эгер сиз кызыл жарык күйсөңүз