Съдържание:
- Стъпка 1: Заглавните файлове
- Стъпка 2: Заснемане на видеоклипа
- Стъпка 3: Заснемане на рамка и определяне на цвят
- Стъпка 4: Маскиране и извличане
- Стъпка 5: Най -накрая се показва
- Стъпка 6: Демо
Видео: Просто откриване на цвят с помощта на OpenCV: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Здравейте! Днес ще покажа прост метод за откриване на цвят от видео на живо с помощта на OpenCV и python.
По принцип просто ще тествам необходимия цвят, присъстващ във фоновата рамка или не, и с помощта на OpenCV модули ще маскирам този регион и едновременно с това показвам рамката.
Стъпка 1: Заглавните файлове
Сега тук използвах два заглавни файла, а именно cv2 и NumPy. По принцип cv2 е библиотеката на OpenCV, която зарежда всички c ++ файлове, които са важни, докато използвате командите в кодовете (тя съдържа всички дефиниции).
А Numpy е библиотека на python, която е от съществено значение за съхраняване на многоизмерен масив. Ще използваме за съхраняване на координатите на цветовата гама.
И numpy като np основно помага на нашия код да съкрати малко, като използва np всеки път вместо numpy.
Стъпка 2: Заснемане на видеоклипа
Това е доста просто, докато използвате python. Тук просто трябва да включим видеорекордера, за да може да започне да записва кадрите.
Сега стойността във VideoCapture показва камерата, в моя случай камерата е свързана към моя лаптоп, така че 0.
Можете да отидете подобно на 1 за вторичната камера и така нататък. VideoCapture създава обекта за него.
Стъпка 3: Заснемане на рамка и определяне на цвят
Сега тук трябва да направим нещо, за да можем да заснемем моменталния кадър на видеото, което ще ни помогне да извлечем изображението и можем да работим върху това според изискванията.
цикъл "while" ще ни помогне да стартираме цикъла до необходимото ни време. Сега "_, frame = cap.read ()" се използва за проверка на валидността на заснетата рамка и я съхранява. "cap.read () е булева променлива и връща true, ако рамката е прочетена правилно и ако не получите рамки, тя няма да покаже никаква грешка, просто ще получите None.
Сега ред 11 и ред 12 определят основно обхвата на цвета, който трябва да открием. За това използвах син цвят.
Можете да продължите с всеки цвят, за което просто трябва да въведете BGR стойности за този конкретен цвят. По -добре е да дефинираме два масива, използвайки numpy масиви, тъй като откриването на определен цвят в реалния свят няма да служи на нашата цел, а ще дефинираме диапазон от син цвят, така че да открива в рамките на диапазона.
За целта съм дефинирал две променливи, съхраняващи долните 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 ()" определя знака, който при натискане ще изпълни командата break в if блок и той ще излезе от цикъла.
Тогава cap.release () затваря видеорекордера и cv2.destroyAllWindows () затваря всички отворени прозорци.
Ако имате някакви проблеми, моля, уведомете ме.
Връзка към изходния код:
Препоръчано:
Машина за боядисване за откриване на цвят: 4 стъпки
Машина за боядисване за откриване на цвят: Машината за боядисване на цветове копира цветовете около вас и ви позволява да рисувате с тях. Ако имате боя с първични цветове, можете да използвате сензора за цвят RGB, за да усетите желания от вас цвят и да го смесите. Но не забравяйте, използвайте обект с ярък цвят
Откриване на цвят в Python с помощта на OpenCV: 8 стъпки
Откриване на цвят в Python с помощта на OpenCV: Здравейте! Тази инструкция се използва, за да ръководи как да извлечете определен цвят от изображение в python, използвайки библиотека openCV. Ако не сте нови в тази техника, не се притеснявайте, в края на това ръководство ще можете да програмирате своя собствен цвят
Проследяване на обекти въз основа на откриване на цвят: 10 стъпки
Проследяване на обекти въз основа на откриване на цвят: История Направих този проект, за да науча обработката на изображения с помощта на Raspberry PI и отворена автобиография. За да направя този проект по -интересен, използвах два сервомотора SG90 и монтирам камера върху него. Един двигател, използван за хоризонтално движение, и втори двигател, използван за вертикално
Откриване на обекти W/ Dragonboard 410c или 820c с помощта на OpenCV и Tensorflow .: 4 стъпки
Object Detection W/ Dragonboard 410c или 820c Използване на OpenCV и Tensorflow .: Тази инструкция описва как да инсталирате OpenCV, Tensorflow и рамки за машинно обучение за Python 3.5, за да стартирате приложението Object Detection
Откриване на цвят с помощта на RGB LED: 4 стъпки
Цветно разпознаване с помощта на RGB LED: Искали ли сте някога автоматизиран начин за откриване на цвета на обект? Като осветявате обекта с определен цвят и гледате колко светлина се отразява обратно, можете да определите какъв цвят е обектът. Например, ако светите червена светлина