İnsanlar yaklaşık 10 milyon rengi ayırt edebilir. Onları algılamak için renk paleti olarak bilinen bir şeye ihtiyacınız var. Bir renk paleti, insan gözüyle görülebilen tüm renk yelpazesini görüntülemek için araçlar içerir. Gerçek dünyada, bunları kağıt üzerinde estetik tasarımlar oluşturmak için kullanırken, dijital olarak ekran öğelerine renk eklemek için kullanırsınız.
Sonuç olarak, bilgisayarınız ekranınızda gördüğünüz tüm farklı gölgeleri belirli bir format kullanarak kodlar. Python ile OpenCV ve NumPy modülü sayesinde sadece birkaç satır kodla RGB kodlu bir renk paleti geliştirebilirsiniz.
OpenCV ve NumPy Modülü
OpenCV kullanarak görüntüleri ve videoları analiz edebilirsiniz. Ücretsizdir, açık kaynaklıdır, kullanımı kolaydır ve faydalı kitaplıklarla doludur. Bunlar, nesneleri hem iki hem de üç boyutta sınıflandırmak, bulmak ve izlemek için teknikler sağlar. OpenCV'yi ortamınıza kurmak için bir terminal açın ve şunu çalıştırın:
pip kurulumu opencv-python
NumPy modülü, birçok Python programının kullandığını göreceğiniz başka bir popüler kitaplıktır. NumPy—numerical Python—veri analizi ve bilimsel bilgi işlem için kullanabileceğiniz bir modüldür. n-boyutlu dizi nesnelerinin yanı sıra matematiksel işlemler bu dizilerin manipülasyonuna yardımcı olan.
NumPy'yi ortamınıza yüklemek için şunu yürütün:
pip kurulumu numpy
Genel olarak, kenar algılama gibi teknikleri kullanarak görüntüleri işlemek için OpenCV kullanacaksınız. Ardından, işlenmiş görüntü üzerinde veri analizi yapmak için NumPy'yi kullanabilirsiniz. Bu kombinasyonu kullanarak şunları yapabilirsiniz: bir QR kodu oluşturun ve kodunu çözün, görüntüleri sınıflandırın, optik karakter tanıma gerçekleştirin ve hareketi algılayabilen ve gerçek zamanlı olarak bireyleri takip edebilen video gözetim sistemleri oluşturun.
Python Kullanarak Renk Paleti Nasıl Oluşturulur
Python'da OpenCV ve NumPy modülünü kullanarak bir Renk Paleti oluşturmak için bu adımları izleyin.
Python Kullanan Renk Paletinin kaynağını burada bulabilirsiniz. GitHub depo.
OpenCV ve NumPy modüllerini içe aktararak başlayın. adlı bir işlev tanımlayın. boş işlev() pass ifadesini içerir. pass ifadesi, gelecekte yazabileceğiniz kodlar için yer tutucu görevi görür. Bu, özellikle daha sonra kullanacağınız createTrackbar gibi işlevlerde kullanışlıdır. Geçerli bir geri arama işlevi gerektirir ve şimdilik emptyFunction'ı yer tutucu olarak iletebilirsiniz.
içe aktarmak CV2
içe aktarmak dizi gibi np
kesinlikleboş işlev():
geçmek
NumPy'leri kullanarak uint8 veri türüyle 512 * 512 * 3 boyutunda üç boyutlu bir dizi oluşturun sıfır() işlev. Her dizi 512 sütun ve 512 satırdan oluşacaktır. uint8 işaretsiz bir tamsayıyı temsil eder, bu nedenle program diziyi sıfırlarla doldurur.
görüntü = np.sıfır((512, 512, 3), np.uint8)
Programın göstereceği pencerenin adını belirleyin ve pencereye iletin. adlı Pencere() bir pencere oluşturmak için işlev:
pencereAdı = "OpenCV Renk Paleti"
cv2.namedWindow (pencereAdı)
Ardından, kırmızı, yeşil ve mavi renk bileşenleri için üç izleme çubuğu oluşturun. Bunu OpenCV'leri kullanarak yapabilirsiniz. trackbar() oluştur işlev. Öncelikle etiketi Kırmızı, Mavi veya Yeşil olarak iletin. İkinci olarak, bu çubukları yerleştirmek istediğiniz pencerenin adını, örneğin, pencere adını iletmeniz gerekir.
Üçüncü parametre, izleme çubuğunun minimum sınırıdır, bu durumda 0'dır. Dördüncü parametre, 24 bit renk değeri için 255 olan maksimum değeri belirtir. Beşinci ve son parametre, createTrackbar için geçerli bir işlev gerektiren bir geri çağırma işlevidir. Yer tutucu görevi görmesi için daha önce emptyFunction'ı oluşturmanızın nedeni budur.
cv2.createTrackbar('Mavi', pencereAdı, 0, 255, boşFonksiyon)
cv2.createTrackbar('Yeşil', pencereAdı, 0, 255, boşFonksiyon)
cv2.createTrackbar('Kırmızı', pencereAdı, 0, 255, boşFonksiyon)
Sonsuz bir while döngüsü bildirin ve pencere adını, görüntülemek istediğiniz görüntüyle birlikte OpenCV'lere iletin. gösteri() işlev. Görüntü üç boyutlu bir sıfır dizisi içerdiğinden, program başlangıçta siyah bir ekran görüntüler.
Değeri test ederek kullanıcının escape tuşuna basıp basmadığını kontrol edin. bekleme tuşu() 27'ye karşı (Escape tuşu için ASCII kodu). waitkey() işlevi, belirli sayıda milisaniye boyunca veya siz bir tuşa basana kadar pencereyi görüntüler. Birini girdi olarak ileterek, pencereyi bir milisaniye görüntüler ancak sonsuz while döngüsü nedeniyle yeniden oluşturur.
İzleme çubuğunun geçerli konumunu almak için, izleme çubuğunun adını pencerenin adıyla birlikte şuraya iletin: getTrackbarPos(). Mavi, yeşil ve kırmızı olmak üzere üç ayrı renk bileşeni için bu adımı tekrarlayın. Görüntü dizisine üç değer atamak için dilim operatörünü kullanın. Bu, başlangıçta tümü sıfır olan önceki değer kümesini, izleme çubuğunun konumlarına göre mevcut değerlerle değiştirecektir.
sırasında (Doğru):
cv2.imshow (pencereAdı, resim)eğer cv2.waitKey(1) == 27:
kırmak
mavi = cv2.getTrackbarPos('Mavi', pencereAdı)
yeşil = cv2.getTrackbarPos('Yeşil', pencereAdı)
kırmızı = cv2.getTrackbarPos('Kırmızı', pencereAdı)
resim[:] = [mavi, yeşil, kırmızı]
yazdır (mavi, yeşil, kırmızı)
Kullanıcı Escape tuşuna bastığında, yok etmekAllWindows() programın açtığı pencereleri kapatmak için:
cv2.destroyAllWindows()
Son olarak, hepsini bir araya getirin ve renk paletinizi kontrol etmek ve görüntülemek için çalıştırın.
Python Renk Paleti Programının Çıktısı
Yukarıdaki program çalıştırıldığında, Mavi, Yeşil ve Kırmızı renkler için üç izleme çubuğu içeren bir pencere açılır. İzleme çubukları 0 ila 255 aralığında hareket eder. Farklı çubukların değerlerini değiştirdiğinizde, aşağıdaki bölümde farklı renk tonları görmelisiniz.
Bu ilk örnekte, Mavi çubuğun ayarını 0, Yeşili 69 ve Kırmızıyı 255 olarak görebilirsiniz. Ortaya çıkan çıktı rengi, turuncu/kırmızının bir tonudur. Ayrıca terminal penceresi renk değerlerini 0 69 255 olarak gösterir.
Benzer şekilde Mavi çubuğu 130, Yeşili 0 ve Kırmızıyı 75 olarak ayarladığınızda İndigo rengi elde edersiniz.
OpenCV'nin Çeşitli Uygulamaları
OpenCV, görüntü işleme, nesne tanıma, yüz tanıma ve izleme gibi görevler için değerli işlevler sunar. OpenCV'yi kullanarak robotik, endüstriyel otomasyon, tıbbi görüntüleme ve gözetim sistemleri gibi alanlarda bir nimet olacak gerçek zamanlı bilgisayarlı görü uygulamaları üretebilirsiniz.
Bilgisayarla görmenin geleceği umut vericidir. Görme engellilere yardımcı olmak, tarımda daha iyi büyüme sağlamak, Sürücüsüz Arabaları kullanarak yol güvenliğini artırmak ve hatta Mars gibi diğer gezegenlerde gezinmek için bilgisayar görüşünü kullanabileceksiniz.