İçindekiler:
- Gereçler
- Adım 1: Kitaplıkları İçe Aktarma
- 2. Adım: İzleme Çubukları Oluşturma
- 3. Adım: Ton, Doygunluk ve Değer için TrackBar'lar Oluşturma
- Adım 4: Görüntü Nasıl Okunur ve Yeniden Boyutlandırılır
- Adım 5: Bir Görüntüye Uygulamak için İzleme Çubuğu Değerlerini Okuma
- Adım 6: Görüntünün Görüntülenmesi ve Üst ve Alt Sınırın Ayarlanması
- Adım 7: Şimdi Son Adım
- Adım 8: Nihai Çıktılar
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Merhaba! Bu talimat, openCV kitaplığı kullanılarak python'daki bir görüntüden belirli bir rengin nasıl çıkarılacağı konusunda rehberlik etmek için kullanılır. Bu teknikte yeniyseniz endişelenmeyin, bu kılavuzun sonunda kendi renk algılama programınızı programlayabileceksiniz.
Aşağıda öğreneceğiniz fonksiyonlar veya teknikler diyebiliriz.
1. Bir resim nasıl okunur
2. İz Çubukları nasıl oluşturulur
3. İz çubuklarını kullanarak bir görüntünün Ton, Doygunluk ve değeri değerleri nasıl ayarlanır?
4. Ve sonra nihai çıktınız olacak
Aşağıda eklediğim çıktının videosunu izleyebilirsiniz.
o zaman başlayalım
Gereçler
- piton 3
- openCV kütüphanesi
- numpy kitaplığı
Adım 1: Kitaplıkları İçe Aktarma
Resim gösterildiği gibi sarı ferrari'ye ait ve bu resimden sadece sarı rengi çıkaracak şekilde programlayacağız.
İlk adım kütüphanelerimizi içe aktarmak olacak
1. openCV kütüphanesi dahil. Python'da cv2 olarak adlandırılır.
2. numpy kütüphanesini np olarak dahil etmek. "As" bize np olarak uyuşturmamıza izin verir, böylece tekrar tekrar numpy yazmamıza gerek kalmaz
2. Adım: İzleme Çubukları Oluşturma
Bir görüntüdeki Ton, Doygunluk ve Değer değerlerini ayarlamak için İzleme Çubukları oluşturulur.
cv2.namedWindow("TrackBars") Bu kod satırı yeni bir çıktı penceresi oluşturmak için kullanılır ve pencerenin adı TrackBars olarak verilir (İstediğiniz ismi verebilirsiniz)
cv2.resizeWindow("TrackBars", 600, 250) Bu fonksiyon bir pencereyi yeniden boyutlandırmak için kullanılır. "TrackBars" hangi pencere için yeniden boyutlandırmak istediğinizdir çünkü TrackBars penceresini yeniden boyutlandırmak istediğim için bu ismi yazdım. Ardından iki tam sayı gelir. Bu iki tam sayı genişlik ve yüksekliktir. Boyutu değiştirmek için bu iki sayı ile oynayabilirsiniz
3. Adım: Ton, Doygunluk ve Değer için TrackBar'lar Oluşturma
Şimdi Ton, Doygunluk ve değer için toplam 6 TrackBar oluşturacağız. Her birinin iki, yani minimum için 1 ve maksimum için 1 olacaktır. openCV'nin createTrackbar işlevini kullanacağız. İlk önce bu fonksiyonun sözdizimini göreceğiz.
cv2.createTrackbar("PENCERE ADI", "ANAPENCERE ADI", "ARALIK"). Bu kafa karıştırıcı olabilir, ancak merak etmeyin, her adımın üzerinden geçeceğiz. OpenCV'de ton değerlerinin 179, doygunluğun 255 ve değerin 255 olduğunu unutmayın.
1. Hue min için TrackBar oluşturma:
cv2.createTrackbar("Ton min", "TrackBars", 0, 179, boş)
Bu Hue min'de trackbar adıdır, TrackBars ana penceredir, 0, kaydırıcımızın olacağı konumdur ve 179, silderin 0-179 arasında hareket edeceği anlamına gelir.
2. hue max için TrackBar oluşturma:
cv2.createTrackbar("Ton max", "TrackBars", 179, 179, boş)
Bu Hue max'da trackbar adıdır, TrackBars ana penceredir, 179, kaydırıcımızın olacağı konumdur ve 179, silderin 179-0'dan hareket edeceği anlamına gelir.
3. Benzer şekilde, sat min, sat max, val min ve val max için resimde gösterildiği gibi adımları tekrarlayın.
Beyaz arka plana sahip görüntü çıktı görüntüsüdür. İz çubuklarınız bu şekilde görünecek
Adım 4: Görüntü Nasıl Okunur ve Yeniden Boyutlandırılır
cv2.imread(), görüntüyü okumanızı sağlar. Resminizin konumunun, programın kaydedildiği klasörde olması gerektiğini aklınızda bulundurmanız gereken önemli bir düşünce. while döngüsü koyacağız çünkü görüntü okunana kadar çalışmalı veya koşul doğru olana kadar söyleyebiliriz
img = cv2.imread("ferrari.jpg")
- Bunun içinde, görüntüyü sakladığım " img " değişken adını oluşturdum.
- cv2.imread içine görüntünün adını uzantısıyla çift tırnak içine yazın
Bir resmi yeniden boyutlandırmak için cv2.resize işlevini kullanacağız. Bu kısım isteğe bağlıdır, yeniden boyutlandırmak isterseniz bu işlevi kullanabilirsiniz.
cv2.resize içine önce görüntünün depolandığı değişken adını, ardından genişliğini ve yüksekliğini yazın
Adım 5: Bir Görüntüye Uygulamak için İzleme Çubuğu Değerlerini Okuma
Tamam, şimdi izleme çubuğu değerlerini okuyacağız, böylece onu resmimize uygulayabiliriz. Değerleri cv2.getTrackbarPos() fonksiyonunu kullanarak alacağız.
O kısımdan başlayalım…
h_min = cv2.getTrackbarPos("Ton min", "TrackBars")
Yukarıdaki açıklamada, Hue min değerini depolayacağım h_min değişken adında bir değişken oluşturuyorum. Yani cv2.getTrackbarPos'un içinde 1. argüman " Hue min " olurdu çünkü ben ton min değerlerini istiyorum (Yazım, createTrackbar işleviyle tamamen aynı olmalıdır) ve 2. argüman ait olduğu izleme çubuğu penceresinin adı olurdu.
- Yukarıdaki resimde gösterildiği gibi h_max ve diğer işlevler için aynı işlemi tekrarlayın ve ardından print() kullanarak tüm değerleri yazdırın.
- Çıktı ikinci resimde gösterilmiştir. h_min, h_max, s_min, s_max, v_min, s_max değerlerini yazdırıyor
Adım 6: Görüntünün Görüntülenmesi ve Üst ve Alt Sınırın Ayarlanması
Artık ton, doygunluk ve değerin minimum ve maksimum değerine sahibiz, bu değeri görüntüyü filtrelemek için kullanacağız, böylece bir görüntünün belirli renk çıktısını elde edebiliriz.
Bunun için cv2.inRange fonksiyonunu kullanarak bir mask oluşturacağız. Ve ondan önce ton, doygunluk ve değerin üst ve alt sınırını belirleyeceğiz.
Bu nedenle, "low" adlı bir değişken adı oluşturun ve numpy dizi işlevini kullanarak 3'ün tümü için min aralığını aşağıdaki gibi ayarlayın
alt = np.array([h_min, s_min, v_min])
üst için aynı adımı tekrarlayın
üst = np.array([h_max, s_max, v_max])
Şimdi aşağıdaki gibi bir maske oluşturacağız
mask = cv2.inRange(yeniden boyutlandır, alt, üst) cv2.inRang içinde 1. argüman son resmimin saklandığı değişken olacaktır, 2. argüman alt limit ve 3. argüman üst limit olacaktır.
Şimdi ana resmi ve maskeyi göstereceğiz. Görüntülemek için cv2.imshow() işlevini kullanacağız.
cv2.imshow("img", resize) Bu, ana resmi görüntülemek içindir. 1. argüman, istediğiniz herhangi bir isim verebileceğiniz pencerenin adıdır ve 2. argüman, ana resmimin saklandığı ve görüntülemek istediğiniz değişkendir.
Benzer şekilde maske için adımları tekrarlayın
cv2.imshow("Çıktı", maske)
Adım 7: Şimdi Son Adım
Bu son adımda, arabanın ve ekranın rengini çıkaracağız.
Bir değişken adı sonucu oluşturdum. Yine istediğiniz ismi verebilirsiniz. Bu yüzden birlikte resimlere ekleyip yeni bir resim oluşturacağımız cv2.bitwise_and() fonksiyonunu kullanacağız. Ve her iki görüntüdeki pikseller nerede mevcutsa, bunu evet veya "1" olarak alacaktır.
sonuç = cv2.bitwise_and(yeniden boyutlandır, yeniden boyutlandır, maske=maske)
- Bunda 1. argüman bizim imajımız olacak
- 2. argüman da orijinal resmimiz olacak, ancak ardından daha önce oluşturduğumuz maske uygulanmış olacak.
- Ve son olarak, sadece imshow işlevini kullanarak sonucu görüntüleyin
Sadece bu son adımı kopyalayıp yapıştırın, bu sadece bir gecikmedir ve klavyede " a " tuşuna basarak çıktı penceresinden çıkabilirsiniz.