Мазмуну:
- 1 -кадам: Header Files
- 2 -кадам: Видеону тартуу
- 3 -кадам: кадрды тартуу жана түсүн аныктоо
- 4 -кадам: Маска жана Чыгаруу
- 5 -кадам: Акырында көрсөтүү
- 6 -кадам: Demo
Video: OpenCV менен жөнөкөй түстөрдү аныктоо: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Салам! Бүгүн мен OpenCV жана python аркылуу жандуу видеодон түстү аныктоонун жөнөкөй ыкмасын көрсөтөм.
Негизинен мен керектүү түстүн фондо бар же жок экенин текшерем жана OpenCV модулдарын колдонуп, мен ошол аймакты маска кылып, ошол эле учурда кадрды көрсөтөм.
1 -кадам: Header Files
Азыр бул жерде мен cv2 жана NumPy деген эки баш файлды колдондум. Негизинен cv2 - бул OpenCV китепканасы, ал коддордогу буйруктарды колдонууда маанилүү болгон бардык c ++ файлдарын жүктөйт (ал бардык аныктамаларды камтыйт).
Жана Numpy - бул көп өлчөмдүү массивди сактоо үчүн зарыл болгон питон китепканасы. Биз түстөр диапазонун координаттарын сактоо үчүн колдонобуз.
Жана numpy, негизинен, биздин кодду numpy ордуна np колдонуу менен бир аз кыскартууга жардам берет.
2 -кадам: Видеону тартуу
Бул python колдонууда абдан жөнөкөй. Бул жерде биз жөн гана видеорегистраторду иштетишибиз керек, ошондо ал кадрларды жаздыра баштайт.
Эми VideoCapture ичиндеги баа камераны көрсөтөт, менин учурда камера ноутбукка туташкан, андыктан 0.
Сиз экинчи камерага окшош 1ге барсаңыз болот жана башкалар. VideoCapture ал үчүн объектти түзөт.
3 -кадам: кадрды тартуу жана түсүн аныктоо
Эми бул жерде биз сүрөттү чыгарууга жардам бере турган видеонун заматта кадрын тартып алышыбыз үчүн бир нерсе кылышыбыз керек жана биз талапка ылайык иштей алабыз.
"while" циклы бизге циклди талап кылынган убакытка чейин иштетүүгө жардам берет. Эми "_, 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 () аркылуу алам. Бул жерде мен оригиналдуу, беткапчан жана түстүү үч фреймди көрсөттүм.
Эми биз while циклинен чыгышыбыз керек. Бул үчүн биз жөн гана cv2.wait. Key () ишке ашыра алабыз. Негизинен ал жооп берүүдөн мурун күтүү убактысын айтат. Ошентип, эгер сиз 0ден өтсөңүз, ал чексиз күтөт жана 0xFF архитектурасы 64 бит экенин айтат. "ord ()" басылганда if блоктун if командасын аткара турган белгини аныктайт жана ал циклден чыгат.
Андан кийин cap.release () видеорегистраторду жабат жана cv2.destroyAllWindows () бардык ачылган терезелерди жабат.
Эгерде сизде кандайдыр бир маселе болсо, мага билдириңиз.
Булак кодуна шилтеме:
Сунушталууда:
Октарин: WS2812 RGB светодиоддору менен түстөрдү дал келтирүүчү оюн: 6 кадам
Октарин: WS2812 RGB светодиоддору менен дал келген түс: Октарин, сыйкырдын түсү. Бул жандуу жана жандуу болчу жана бул фантазиянын талашсыз пигменти болчу, анткени кайда гана көрүнбөсүн, бул нерсе сыйкырдуу акылдын күчтөрүнүн кызматчысы экенинин белгиси. Бул сыйкырчылар эле
Түстөрдү сорттоо системасы: Arduino негизделген системасы эки кур менен: 8 кадам
Түстөрдү сорттоо системасы: Arduino негизделген эки белдемдүү система: Өнөр жай тармагындагы продукцияларды жана буюмдарды ташуу жана/же таңгактоо конвейердик линиялардын жардамы менен жүргүзүлөт. Бул курлар нерсени белгилүү бир ылдамдык менен бир чекиттен экинчи пунктка жылдырууга жардам берет. Кээ бир иштетүү же идентификациялык тапшырмалар болушу мүмкүн
OpenCV менен Pythonдо түстү аныктоо: 8 кадам
OpenCV аркылуу Pythonдо түстү аныктоо: Саламатсызбы! Бул көрсөтмө openCV китепканасын колдонуп, питондогу сүрөттөн белгилүү бир түстү кантип алуу керектигин үйрөтүү үчүн колдонулат. Эгерде сиз бул техниканы жаңы колдонуп жатсаңыз, кабатыр болбоңуз, бул колдонмонун аягында сиз өзүңүздүн түсүңүздү программалай аласыз
LED тилкелери жана Arduino менен түстөрдү өзгөртүү кутучасынын текчелери: 5 кадам (сүрөттөр менен)
Түстү өзгөртүүчү кутуча текчелери LED-тилкелери жана Arduino менен: Бул столдун жанында жана үстүндө кошумча сактагыч керек болгондуктан башталды, бирок мен ага өзгөчө дизайн бергим келди. Эмнеге ар бир түскө ээ боло турган кереметтүү LED тилкелерин колдонбойсуз? Мен текченин өзү жөнүндө бир нече эскертүүлөрдү берем
Raspberry Pi Zero жана Opencv менен жүздү жана көздү аныктоо: 3 кадам
Raspberry Pi Zero жана Opencv менен жүздү жана көздү аныктоо: Бул көрсөтмөдө мен малина pi жана opencvдин жардамы менен жүздү жана көздү кантип аныктоого болорун көрсөтөм. Бул менин opencv боюнча биринчи көрсөтмөм. Мен малинада ачык резюме орнотуу үчүн көптөгөн окуу куралдарын ээрчип жүрдүм, бирок ар бир жолу кээ бир каталар менен уруп жаттым. Эмнеси болсо да мен