Мазмұны:
- 1 -қадам: тақырып файлдары
- 2 -қадам: бейнені түсіру
- 3 -қадам: кадрды түсіру және түсін анықтау
- 4 -қадам: маска мен экстракция
- 5 -қадам: Соңында көрсету
- 6 -қадам: демо
Бейне: OpenCV көмегімен қарапайым түсті анықтау: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Сәлем! Бүгін мен OpenCV мен python көмегімен тірі бейнеден түс табудың қарапайым әдісін көрсетемін.
Негізінде мен қажетті түстің фондық фреймде бар -жоғын тексеремін, ал OpenCV модульдерін қолдана отырып, мен сол аймақты маскирлеп, сонымен қатар кадрды көрсетемін.
1 -қадам: тақырып файлдары
Енді мен мұнда екі тақырыптық файлды қолдандым, атап айтқанда cv2 және NumPy. Негізінде cv2 - бұл OpenCV кітапханасы, ол кодтардағы командаларды қолдану кезінде маңызды барлық c ++ файлдарын жүктейді (онда барлық анықтамалар бар).
Ал Numpy - бұл көп өлшемді массивті сақтау үшін қажет питон кітапханасы. Біз түс ауқымының координаттарын сақтау үшін қолданатын боламыз.
Ал numpy ретінде np негізінен біздің кодты numpy орнына np пайдалану арқылы біраз қысқартуға көмектеседі.
2 -қадам: бейнені түсіру
Бұл питонды пайдалану кезінде өте қарапайым. Мұнда біз кадрларды жазуды бастайтындай етіп, бейне жазғышты қосуымыз керек.
Енді VideoCapture ішіндегі мән камераны көрсетеді, менің жағдайда камера ноутбукке қосылған, сондықтан 0.
Сіз қайталама камера үшін 1 -ге ұқсас бола аласыз және т.б. VideoCapture ол үшін объект жасайды.
3 -қадам: кадрды түсіру және түсін анықтау
Енді мұнда біз суретті шығаруға көмектесетін бейненің жылдам кадрын түсіру үшін бірдеңе істеуіміз керек және біз бұл талап бойынша жұмыс жасай аламыз.
«while» циклы бізге циклды біздің қажетті уақытқа дейін жүргізуге көмектеседі. Енді «_, frame = cap.read ()» кадрдың түсірілгенін тексеру үшін қолданылады және оны сақтайды. «cap.read () логикалық айнымалы болып табылады және егер рамка дұрыс оқылса және егер кадрлар алынбаса, ол қатені көрсетпесе, ақиқатты қайтарады, сіз жай None аласыз.
Енді 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 ()» басылған кезде үзіліс командасын if блогында орындайтын және циклден шығатын таңбаны көрсетеді.
Содан кейін cap.release () бейнежазғышты жабады және cv2.destroyAllWindows () барлық ашылған терезелерді жабады.
Егер сізде қандай да бір мәселе болса, маған хабарлаңыз.
Бастапқы кодқа сілтеме:
Ұсынылған:
OpenCV көмегімен Python -да түсті анықтау: 8 қадам
OpenCV көмегімен Python -да түсті анықтау: Сәлеметсіз бе! Бұл нұсқаулық OpenCV кітапханасын қолдана отырып, питондағы суреттен белгілі бір түсті қалай алу керектігін түсіндіру үшін қолданылады. Егер сіз бұл техниканы жаңадан білсеңіз, алаңдамаңыз, бұл нұсқаулықтың соңында сіз өзіңіздің жеке түсіңізді бағдарламалай аласыз
Музыкалық реактивті көп түсті жарықдиодты шамдар - Arduino дыбысты анықтау сенсоры - RGB жарық диодты жолағы: 4 қадам
Музыкалық реактивті көп түсті жарықдиодты шамдар | Arduino дыбысты анықтау сенсоры | RGB жарық диодты жолағы: Музыкалық реактивті көп түсті жарықдиодты шамдар жобасы. Бұл жобада 5050 RGB жарықдиодты жолағы (WS2812 мекен -жайы жоқ), Arduino дыбысты анықтау сенсоры мен 12В адаптері қолданылды
OpenCV мен Tensorflow көмегімен Dragonboard 410c немесе 820c нысандарын анықтау: 4 қадам
OpenCV мен Tensorflow көмегімен Dragonboard 410c немесе 820c нысандарын анықтау: Бұл нұсқаулықта объектілерді анықтау қосымшасын іске қосу үшін Python 3.5 үшін OpenCV, Tensorflow және машиналық оқыту жүйелерін орнату әдісі сипатталған
Raspberry Pi Zero және Opencv көмегімен бет пен көзді анықтау: 3 қадам
Raspberry Pi Zero және Opencv көмегімен бет пен көзді анықтау: Мен бұл нұсқаулықта таңқурай pi мен opencv көмегімен бет пен көзді қалай анықтауға болатынын көрсетемін. Бұл менің opencv бойынша бірінші нұсқауым. Мен таңқурайдағы ашық түйіндемені орнату үшін көптеген оқулықтарды орындадым, бірақ әр жолы қателіктер жіберілді. Қалай болғанда да мен
RGB LED көмегімен түсті анықтау: 4 қадам
RGB светодиодты қолдану арқылы түсті анықтау: Сіз объектінің түсін анықтаудың автоматтандырылған әдісін алғыңыз келді ме? Нәрсеге белгілі бір түстің жарығын түсіріп, артқа қанша сәуле шағылатынын қарап, сіз заттың қандай түсті екенін біле аласыз. Мысалы, егер сіз қызыл шамды жансаңыз