Mündəricat:
- Addım 1: Başlıq Dosyaları
- Addım 2: Videonun çəkilməsi
- Addım 3: Çərçivə çəkmək və Rəng müəyyən etmək
- Addım 4: Maska və çıxarma
- Addım 5: Nəhayət göstərilir
- Addım 6: Demo
Video: OpenCV istifadə edərək sadə rəng algılama: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Salam! Bu gün OpenCV və python istifadə edərək canlı videodan bir rəng aşkar etməyin sadə bir üsulunu göstərəcəyəm.
Əsasən, lazım olan rəngin arxa planda olub olmadığını yoxlayacağam və OpenCV modullarından istifadə edərək həmin bölgəni maskalayacağam və eyni zamanda çərçivəni göstərəcəyəm.
Addım 1: Başlıq Dosyaları
İndi burada cv2 və NumPy adlı iki başlıq faylından istifadə etdim. Əsasən cv2, kodlardakı əmrlərdən istifadə edərkən vacib olan bütün c ++ fayllarını yükləyən OpenCV kitabxanasıdır (bütün tərifləri ehtiva edir).
Və Numpy, çoxölçülü bir sıra saxlamaq üçün vacib olan bir python kitabxanasıdır. Rəng aralığımızın koordinatlarını saxlamaq üçün istifadə edəcəyik.
Və np kimi numpy, kodumuzun hər dəfə numpy əvəzinə np istifadə edərək bir qədər qısalmasına kömək edir.
Addım 2: Videonun çəkilməsi
Python istifadə edərkən bu olduqca sadədir. Burada çərçivələri yazmağa başlaya bilməsi üçün sadəcə video yazıcını işə salmalıyıq.
İndi VideoCapture içindəki dəyər kameranı göstərir, mənim vəziyyətimdə kamera dizüstü kompüterimə bağlıdır, buna görə 0.
İkinci kameraya bənzər şəkildə 1 -ə gedə bilərsiniz və s. VideoCapture bunun üçün obyekt yaradır.
Addım 3: Çərçivə çəkmək və Rəng müəyyən etmək
İndi burada bir şey etməliyik ki, videonun ani çərçivəsini çəkə bilək ki, bu da görüntünü çıxarmağa kömək edəcək və tələbə uyğun olaraq işləyə bilərik.
"while" döngüsü, döngəni tələb olunan vaxta çatdırmağımıza kömək edəcək. İndi "_, frame = cap.read ()" Çərçivənin tutulduğunu yoxlamaq və saxlamaq üçün istifadə olunur. "cap.read () bir boolean dəyişəndir və çərçivə düzgün oxunduqda və heç bir çərçivə almadığınızda heç bir səhv göstərməyincə doğru olaraq qaytarılır, sadəcə heç birini alacaqsınız.
İndi 11 və 12 -ci sətirlər əsasən aşkar etməyimiz lazım olan rəng aralığını təyin edir. Bunun üçün mavi rəngdən istifadə etmişəm.
Bunun üçün hər hansı bir rəngə davam edə bilərsiniz, yalnız o rəng üçün BGR dəyərlərini yazmalısınız. Həqiqi dünyada müəyyən bir rəngin aşkarlanması məqsədimizə xidmət etməyəcəyi üçün numpy dizilərindən istifadə edərək iki sıra təyin etmək daha yaxşıdır, əksinə bir sıra mavi rənglər təyin edəcəyik ki, bu diapazonda algılar.
Bunun üçün aşağı BGR və yuxarı BGR dəyərlərini saxlayan iki dəyişən təyin etdim.
Addım 4: Maska və çıxarma
İndi burada çərçivəni maskalamaq və çərçivənin rəngini çıxarmaq əsas vəzifəsi gəlir. Maskeleme etmək üçün OpenCV kitabxanasında olan əvvəlcədən təyin edilmiş əmrlərdən istifadə etdim. Əsasən maskeleme, çərçivənin bir hissəsinin çıxarılması prosesidir, yəni BGR rəngləri müəyyən rəng aralığında olmayan və bu cv2.inRange tərəfindən edilən pikselləri siləcəyik. Daha sonra, piksel dəyərlərindən asılı olaraq maskalı görüntüyə rəng aralığını tətbiq edirik və bunun üçün cv2.bitwise_and istifadə edəcəyik, maskaları və rəng aralığının dəyərlərindən asılı olaraq rəngləri maskalı bölgəyə təyin edəcək.
Cv2 üçün keçid. bitwise_and:
Addım 5: Nəhayət göstərilir
Burada hər bir çərçivəni görüntü olaraq göstərmək üçün əsas cv2.imshow () istifadə etdim. Çərçivə məlumatlarını dəyişənlərdə saxladığım üçün onları imshow () da əldə edə bilərəm. Burada orijinal, maskalı və rəngli üç çərçivənin hamısını nümayiş etdirdim.
İndi while döngəsindən çıxmalıyıq. Bunun üçün sadəcə cv2.wait. Key () tətbiq edə bilərik. Əsasən cavab vermədən əvvəl gözləmə müddətini bildirir. 0 -dan keçsəniz, sonsuza qədər gözləyər və 0xFF, arxitekturanın 64 bit olduğunu bildirir. "ord ()", basıldığında if blokunda if əmrini yerinə yetirəcəyini və döngədən çıxacağını ifadə edir.
Sonra cap.release () video yazıcısını və cv2.destroyAllWindows () bütün açılan pəncərələri bağlayır.
Hər hansı bir probleminiz varsa, mənə bildirin.
Mənbə koduna keçid:
Tövsiyə:
OpenCV istifadə edərək Pythonda Rəng Algılama: 8 Addım
OpenCV istifadə edərək Pythonda Rəng Algılama: Salam! Bu təlimat, openCV kitabxanasından istifadə edərək pythonda bir şəkildən müəyyən bir rəngin necə çıxarılacağını izah etmək üçün istifadə olunur. Bu texnikada yenisinizsə, narahat olmayın, bu təlimatın sonunda öz rənginizi proqramlaşdıra biləcəksiniz
Arduino RGB Rəng Seçici - Real Həyat Obyektlərindən Rəng Seçin: 7 Addım (Şəkillərlə)
Arduino RGB Rəng Seçici - Real Həyat Nəsillərindən Rəng Seçin: Kompüterinizdə və ya cib telefonunuzda real həyatda gördüyünüz rəngləri yenidən yaratmağa imkan verən bu Arduino əsaslı RGB rəng seçici ilə fiziki obyektlərdən rəngləri asanlıqla seçin. Ucuz bir TCS347 istifadə edərək obyektin rəngini skan etmək üçün sadəcə bir düyməni basmaq kifayətdir
OpenCV və Tensorflow istifadə edərək Dragonboard 410c və ya 820c ilə Obyekt Algılama .: 4 Addım
OpenCV və Tensorflow istifadə edərək Dragonboard 410c və ya 820c ilə Obyekt Algılama .: Bu təlimatlar, Obyekt Algılama tətbiqini işə salmaq üçün Python 3.5 üçün OpenCV, Tensorflow və maşın öyrənmə çərçivələrinin necə qurulacağını izah edir
GIMP -dən istifadə edərək insanları/insanları/heyvanları/robotları həqiqətən sərin/parlaq bir istilik görmə qabiliyyətinə (seçdiyiniz rəng) bənzətməyin həqiqətən sadə/asan/çətin olmayan yolu: 4 addım
GIMP -dən istifadə edərək İnsanları/İnsanları/Heyvanları/Robotları Həqiqətən Sərin/Parlaq İstilik Görmə Sahəsinə (Seçdiyiniz Rəngə) bənzətməyin Həqiqətən Sadə/Asan/Qeyri -Mürəkkəb Yolu: Oxuyun … başlığını oxuyun
RGB LED istifadə edərək rəng algılama: 4 addım
RGB LED istifadə edərək rəng algılama: Heç bir obyektin rəngini aşkar etmək üçün avtomatlaşdırılmış bir yol istəmisinizmi? Müəyyən bir rəngin işığını obyektə yandıraraq və nə qədər işığın geri əks olunduğuna baxaraq, obyektin hansı rəngdə olduğunu anlaya bilərsiniz. Məsələn, qırmızı işıq yansanız