• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

Raspberry Pi ile görüntü işleme nasıl uygulanır?

Garfield

Yönetici
YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
488
Mesajlar
501
AI Seviyesi
Yeni
Raspberry Pi ile görüntü işleme uygulamak için en kolay başlangıç, Python ve OpenCV kullanarak bir görüntüyü okumak, dönüştürmek ve sonucu yeni bir dosyaya kaydetmektir. Aşağıdaki örnek; renkli bir resmi gri tonlamaya çevirir, eşikleme uygular ve işlenmiş görüntüyü kaydeder. Böylece aynı temel akışı daha sonra kamera görüntüsü, kenar bulma veya nesne algılama için genişletebilirsiniz.

Gerekli ortam​


Raspberry Pi üzerinde Raspberry Pi OS, çalışan Python 3 kurulumu, işlenecek bir görüntü dosyası ve OpenCV gerekir. Örnekte görüntü dosyasının adı test.jpg olarak kabul edilmiştir. Kamera kullanmadan önce dosya üzerinden işlem yapmak, sorunun kameradan mı yoksa görüntü işleme kodundan mı kaynaklandığını ayırmayı kolaylaştırır.

OpenCV ile ilk görüntü işleme uygulaması​


İşleme başlamadan önce bir terminal açın ve çalışma klasörü oluşturun.
  1. Çalışma klasörünü oluşturun. Terminalde aşağıdaki komutları çalıştırın. Görüntü dosyanızı daha sonra bu klasöre koyun.

    Bash:
    mkdir -p ~/goruntu-denemesi
    cd ~/goruntu-denemesi
  2. OpenCV paketini kurun. Raspberry Pi OS paket yöneticisini kullanarak Python için OpenCV desteğini yükleyin. Kurulum tamamlandığında terminal hata vermeden yeniden komut satırına dönmelidir.

    Bash:
    sudo apt update
    sudo apt install -y python3-opencv
  3. İşlenecek görüntüyü klasöre yerleştirin. Örneğin test.jpg dosyasını ~/goruntu-denemesi içine kopyalayın. Dosya adını farklı kullandıysanız aşağıdaki kodu çalıştırırken o adı belirtin.
  4. Python dosyasını oluşturun. Klasörde goruntu_isleme.py adlı bir dosya oluşturun ve aşağıdaki kodu içine kaydedin.

    Python:
    import sys
    from pathlib import Path
    
    import cv2
    
    
    if len(sys.argv) != 2:
        print("Kullanım: python3 goruntu_isleme.py goruntu_dosyasi")
        sys.exit(1)
    
    kaynak_yolu = Path(sys.argv[1])
    goruntu = cv2.imread(str(kaynak_yolu))
    
    if goruntu is None:
        print(f"Görüntü okunamadı: {kaynak_yolu}")
        print("Dosya yolunu, dosya adını ve uzantıyı kontrol edin.")
        sys.exit(1)
    
    gri = cv2.cvtColor(goruntu, cv2.COLOR_BGR2GRAY)
    
    _, ikili = cv2.threshold(
        gri,
        127,
        255,
        cv2.THRESH_BINARY
    )
    
    cikti_yolu = kaynak_yolu.with_name(
        kaynak_yolu.stem + "_islenmis.png"
    )
    
    if not cv2.imwrite(str(cikti_yolu), ikili):
        print(f"Çıktı kaydedilemedi: {cikti_yolu}")
        sys.exit(1)
    
    print(f"İşlem tamamlandı: {cikti_yolu}")
  5. Programı çalıştırın. Aynı klasördeyken kaynak görüntünün yolunu komuta verin. Başarılı çalışmada, işlenmiş dosyanın yolunu bildiren bir mesaj görürsünüz.

    Bash:
    python3 goruntu_isleme.py test.jpg
  6. Çıktıyı kontrol edin. Klasörde test_islenmis.png dosyasını açın. Açık renkli bölgeler beyaza, koyu bölgeler siyaha dönüştüyse gri tonlama ve eşikleme adımları çalışmıştır.
Kod önce görüntüyü BGR renk düzeninde okur. Ardından cv2.cvtColor() ile gri tonlamaya çevirir. cv2.threshold() işlevindeki 127 değeri eşik olarak kullanılır: gri değeri bu sınırın üzerindeyse piksel beyaza, bu sınıra eşit veya daha düşükse siyaha dönüştürülür. Bu işlem nesnenin ne olduğunu anlamaz; yalnızca pikselleri belirli bir kurala göre ayırır.

Aynı akışta farklı işlemler​


Görüntü işleme adımını seçerken hedefiniz önemlidir. Aşağıdaki işlemler, aynı görüntü okuma ve çıktı kaydetme akışının içine eklenebilir.
İşlemNe üretir?Ne zaman kullanılır?
Gri tonlamaTek kanallı açık-koyu görüntüRenk bilgisi gerekmiyorsa ve işlemi basitleştirmek için
EşiklemeSiyah-beyaz maskeArka plan ile nesneyi ayırmak için
Kenar bulmaBelirgin sınır çizgileriŞekil veya nesne sınırlarını incelemek için
Kontur bulmaKapalı şekillerin sınırlarıAlan, çevre veya şekil ölçmek için
Örneğin yalnızca kenarları görmek istiyorsanız ana koddaki _, ikili = cv2.threshold(...) atama bloğunu aşağıdaki tek satırla değiştirin. Sonraki dosya adı oluşturma ve kaydetme kodunu koruyun; test_islenmis.png bu kez kenar görüntüsünü içerir. Böylece kaydetme adımının kullandığı ikili değişkeni tanımlı kalır.

Python:
ikili = cv2.Canny(gri, 100, 200)

Buradaki iki sayı görüntünün aydınlığına ve ayrıntı düzeyine göre değişebilir. Çok düşük değerler gürültüyü de kenar olarak işaretleyebilir; çok yüksek değerler gerçek kenarları kaçırabilir.

Sonucu nasıl yorumlamalısınız?​


Çıktının tamamen siyah veya tamamen beyaz olması, çoğunlukla eşik değerinin görüntüye uygun olmadığını gösterir; bu durum OpenCV'nin çalışmadığını kanıtlamaz. Daha aydınlık ya da daha karanlık görüntülerde 127 yerine farklı bir eşik deneyebilir veya sabit eşik yerine uyarlamalı eşikleme kullanabilirsiniz.

Görüntü okunamadığında ilk olarak dosya yolunu, büyük-küçük harf farkını ve dosya uzantısını kontrol edin. cv2.imread() sonucunun None olması, programın geçerli bir görüntü verisi alamadığını gösterir. İşlenmiş dosya oluşuyor fakat içerik beklenenden farklıysa giriş görüntüsünün ışığını, çözünürlüğünü ve seçilen yöntemin amacınıza uygun olup olmadığını inceleyin.

Bu örnek sabit bir görüntüyü işler. Canlı kamera uygulamasına geçerken aynı gri tonlama, eşikleme veya kenar bulma adımlarını her kamera karesine uygulamanız gerekir. Önce tek bir görüntüde doğru sonuç aldığınızdan emin olun; ardından kamera yakalama katmanını ekleyin. Böylece görüntünün alınması, işlenmesi ve gösterilmesiyle ilgili hataları birbirine karıştırmazsınız.

Sık sorulan sorular​

Bu kod nesnenin ne olduğunu otomatik olarak tanır mı?​

Hayır. Örnek yalnızca pikselleri gri tonlama, eşikleme veya kenar bulma gibi kurallarla dönüştürür. Nesne tanıma için ayrıca eğitilmiş bir model ya da amaca uygun bir görüntü sınıflandırma ve algılama yöntemi gerekir.
 
Son düzenleme:

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Geri
Üst