
Mündəricat:
- Təchizat
- Addım 1: Kitabxanaların idxalı
- Addım 2: İz çubuqlarının yaradılması
- Addım 3: Rəng, Doyma və Dəyər üçün TrackBars Yaratmaq
- Addım 4: Şəkli necə oxumaq və ölçüsünü dəyişdirmək olar
- Addım 5: Şəkilə tətbiq etmək üçün Track Bar Dəyərlərini Oxuyun
- Addım 6: Şəkli Göstərmək və Üst və Alt Limiti Ayarlamaq
- Addım 7: İndi son addım
- Addım 8: Son Çıxışlar
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54


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. Əgər bu texnikaya yenisinizsə, narahat olmayın, bu təlimatın sonunda öz rəng aşkarlama proqramınızı proqramlaşdıra biləcəksiniz.
Aşağıdakı funksiyalar və ya öyrənəcəyiniz texnikalar deyə bilərik, 1. Bir şəkli necə oxumaq olar
2. Track Barlar necə yaradılır
3. Parça çubuqlarından istifadə edərək Hue, Saturation və görüntünün dəyərini necə tənzimləmək olar
4. Və sonra son çıxışınız olacaq
Aşağıda əlavə etdiyim çıxışın videosunu izləyə bilərsiniz.
Beləliklə, başlayaq
Təchizat
- Python 3
- openCV kitabxanası
- numpy kitabxana
Addım 1: Kitabxanaların idxalı

Şəkil göstərildiyi kimi sarı Ferrari -dir və həmin şəkildən yalnız sarı rəng çıxarmaq üçün proqramlaşdıracağıq
İlk addım kitabxanalarımızı idxal etməkdir
1. OpenCV kitabxanası daxil olmaqla. Pythonda cv2 adlanır
2. Np kimi kitabxananın daxil edilməsi. "As" bizə np olaraq numpy etməyə imkan verir, buna görə də təkrar -təkrar numpy yazmağa ehtiyac yoxdur
Addım 2: İz çubuqlarının yaradılması

Parça Çubuqları, bir görüntüdə Hue, Doyma və Dəyərin dəyərini tənzimləmək üçün yaradılmışdır.
cv2.namedWindow ("TrackBars") Bu kod xətti yeni bir çıxış pəncərəsi yaratmaq üçün istifadə olunur və pəncərənin adı TrackBars olaraq verilir (İstədiyiniz adı verə bilərsiniz)
cv2.resizeWindow ("TrackBars", 600, 250) Bu funksiya bir pəncərənin ölçüsünü dəyişmək üçün istifadə olunur. "TrackBars", bu adı yazdığım üçün TrackBars pəncərəsinin ölçüsünü dəyişdirmək istədiyim üçün ölçüsünü dəyişdirmək istədiyiniz pəncərə üçündür. Ardından iki tam ədəd gəlir. Bu iki tam ədəd eni və hündürlüyüdür. Ölçünü dəyişdirmək üçün bu iki rəqəmlə oynaya bilərsiniz
Addım 3: Rəng, Doyma və Dəyər üçün TrackBars Yaratmaq


İndi Hue, Doyma və dəyər üçün cəmi 6 TrackBars yaradacağıq. Hər birinin iki, yəni minimum 1 və maksimum 1 olacaq. OpenCV -nin createTrackbar funksiyasından istifadə edəcəyik. Əvvəlcə bu funksiyanın sintaksisini görəcəyik.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Bu, çaşqınlıq yarada bilər, amma hər bir addımı keçəcəyimizdən narahat olmayın. Unutmayın ki, açıq CV -də rəng tonları 179, doyma 255 və dəyər 255 -dir.
1. Hue min üçün TrackBar yaratmaq:
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, boş)
Bu Hue min-də iz çubuğunun adı, TrackBars əsas pəncərə, 0 kaydırıcımızın olacağı mövqe və 179, silindirin 0-179-dan hərəkət edəcəyi deməkdir.
2. Hue max üçün TrackBar yaratmaq:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, boş)
Bu Hue max-da iz çubuğunun adı, TrackBars əsas pəncərə, 179, kaydırıcımızın olacağı mövqe və 179, silindirin 179-0-dan hərəkət edəcəyi deməkdir.
3. Eynilə, şəkildə göstərildiyi kimi sat min, sat max, val min və val max üçün addımları təkrarlayın
Ağ fonlu şəkil çıxış şəklidir. Track barlarınız necə görünəcək
Addım 4: Şəkli necə oxumaq və ölçüsünü dəyişdirmək olar

cv2.imread () şəkli oxumağa imkan verir. Nəzərə almalı olduğunuz vacib bir fikir, şəkilinizin yerləşdiyi yerin proqramın saxlandığı qovluqda olmasıdır. While döngəsini qoyacağıq, çünki görüntünü oxuyana qədər işləməlidir və ya şərt doğru olana qədər deyə bilərik
img = cv2.imread ("ferrari.jpg")
- Burada görüntünü saxladığım "img" dəyişən bir ad yaratdım
- İçərisində cv2.imread ikiqat alıntı daxilində uzantısı olan görüntünün adını yazın
Bir görüntünün ölçüsünü dəyişdirmək üçün cv2.resize funksiyasından istifadə edəcəyik. Bu hissə isteğe bağlıdır, ölçüsünü dəyişdirmək istəyirsinizsə, bu funksiyadan istifadə edə bilərsiniz
Cv2.resize daxilində əvvəlcə görüntünün saxlandığı dəyişən adı yazın, sonra eni və hündürlüyü
Addım 5: Şəkilə tətbiq etmək üçün Track Bar Dəyərlərini Oxuyun


Tamam, indi izləmə çubuğu dəyərlərini oxuyacağıq ki, şəklimizə tətbiq edə bilək. Cv2.getTrackbarPos () funksiyasından istifadə edərək dəyərləri alacağıq.
O hissədən başlayaq…
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
Yuxarıdakı ifadədə Hue min dəyərini saxlayacağım h_min dəyişən bir ad yaradıram. Beləliklə, cv2.getTrackbarPos daxilində 1 -ci arqument "Hue min" olardı, çünki hue min dəyərlərini istəyirəm (Orfoqrafiya createTrackbar funksiyası ilə tam eyni olmalıdır) və 2 -ci arqument aid olduğu trackbar pəncərəsinin adı olardı.
- Eyni prosesi h_max və yuxarıdakı şəkildə göstərildiyi kimi qalan funksiyalar üçün təkrarlayın və sonra print () istifadə edərək bütün dəyərləri çap edin.
- Çıxış ikinci şəkildə göstərilir. H_min, h_max, s_min, s_max, v_min, s_max dəyərlərini çap edir
Addım 6: Şəkli Göstərmək və Üst və Alt Limiti Ayarlamaq

İndi görüntünün süzülməsi üçün istifadə edəcəyimiz rəng, doyma və dəyərin minimum və maksimum dəyərinə sahibik ki, bir görüntünün xüsusi rəngli çıxışı olsun.
Bunun üçün cv2.inRange funksiyasından istifadə edərək bir maska yaradacağıq. Və bundan əvvəl rəng, doyma və dəyərin yuxarı və aşağı həddini təyin edəcəyik
Beləliklə, "aşağı" bir dəyişən adı yaradın və numpy array funksiyasından istifadə edərək hər 3 üçün min aralığını aşağıdakı kimi təyin edin
aşağı = np.array ([h_min, s_min, v_min])
Üst üçün eyni addımı təkrarlayın
yuxarı = np.array ([h_max, s_max, v_max])
İndi aşağıdakı kimi bir maska hazırlayacağıq
mas = cv2.inRange (ölçüsünü dəyiş, aşağı, yuxarı) İçərisində cv2.inRang 1 -ci arqument mənim son şəklimin saxlandığı dəyişən olardı, 2 -ci arqument aşağı hədd, 3 -cü arqument yuxarı hədd olardı.
İndi əsas görüntüyü və maskanı göstərəcəyik. Göstərmək üçün cv2.imshow () funksiyasından istifadə edəcəyik
cv2.imshow ("img", ölçüsünü dəyiş) Bu, əsas görüntünü göstərmək üçündür. 1 -ci arqument, istədiyiniz hər hansı bir adı verə biləcəyiniz pəncərənin adıdır və 2 -ci arqument, mənim göstərmək istədiyiniz əsas şəklimin saxlanıldığı dəyişkəndir.
Eyni şəkildə maska üçün addımları təkrarlayın
cv2.imshow ("Çıxış", maska)
Addım 7: İndi son addım

Bu son mərhələdə avtomobilin rəngini çıxaracağıq və göstərəcəyik.
Bir dəyişən ad nəticəsi yaratdım. Yenə də istədiyiniz ad verə bilərsiniz. Beləliklə, şəkillərə birlikdə əlavə edəcəyimiz və yeni bir şəkil yaradacağımız cv2.bitwise_and () funksiyasından istifadə edəcəyik. Və hər iki şəkildəki piksellər harada olursa olsun, bunu bəli və ya "1" olaraq qəbul edəcək.
nəticə = cv2.bitwise_and (ölçüsünü dəyiş, ölçüsünü dəyiş, maska = maska)
- Bunda 1 -ci arqument imicimiz olacaq
- 2 -ci arqument həm də orijinal imicimiz olacaq, ancaq əvvəllər yaratdığımız maskadan sonra
- Və nəhayət imshow funksiyasından istifadə edərək nəticəni göstərin
Bu son addımı yapışdırıb kopyalayın, bu sadəcə gecikmədir və klaviaturada "a" düyməsinə basaraq çıxış pəncərəsindən çıxa bilərsiniz
Addım 8: Son Çıxışlar
Tövsiyə:
Pythonda OpenCV istifadə edən QR Kod Skaneri: 7 addım

PyCon-da OpenCV-dən istifadə edən QR Kod Skaneri: Bugünkü dünyada, məhsul qablaşdırmasından Online Ödənişlərə qədər demək olar ki, hər yerdə QR kodu və Barkodun istifadə edildiyini görürük və indi menyunu görmək üçün restoranda belə QR kodları görürük. böyük bir fikir olduğuna şübhə edirəm. Amma heç varmısan
Pythonda SHT25 ilə Raspberry Pi istifadə edərək Nəmlik və İstilik Müşahidəçisi: 6 addım

Python'da SHT25 ilə Raspberry Pi istifadə edən Rütubət və Temperatur Müşahidəçisi: Raspberry Pi üçün bir həvəskar olaraq, onunla daha möhtəşəm təcrübələr düşündük. və SHT25, Humidi
OpenCV istifadə edərək sadə rəng algılama: 6 addım

OpenCV istifadə edərək sadə rəng algılama: 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 çərçivədə olub olmadığını yoxlayacağam və OpenCV modullarından istifadə edərək həmin bölgəni maskalayacağam və
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
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