OpenCv’de Video Boyutlandırma ve Gri Tonlama

Merhaba arkadaşlar, Mobilhanem.com sitemizde Python ile Görüntü İşleme Dersleri eğitim serisine kaldığımız yerden devam ediyoruz. Geçen dersimizde OpenCv’de Temel Video ve Kamera İşlemleri’nden bahsettik. Python ile Görüntü İşleme dersinde bu hafta ise OpenCv’de Video Boyutlandırma ve Gri Tonlama konularından bahsedeceğiz. Eğer bir önceki dersimizi inceleme fırsatınız olmadıysa OpenCv’de Temel Video ve Kamera İşlemleri dersimize buradan ulaşabilirsiniz

Temel Video ve Kamera İşlemleri dersimizde işleyeceğimiz konu başlıklarını tekrar sıralayalım.

  • Kameradan Görüntü Alma ve Video Okuma İşlemi
  • Video Boyutlandırma ve Gri Tonlama İşlemi
  • Video Çözünürlüğü ve Skalalama İşlemi
  • Video Kaydetme ve Döndürme İşlemi

Listemizden sırayla ilerlemeye devam ediyoruz. Kameradan Görüntü Alma ve Video Okuma İşlemi konusunu geçen dersimizde bitirmiştik. Bu haftaki konumuz olan Video Boyutlandırma ve Gri Tonlama dersine başlayabiliriz.

Video Boyutlandırma

Bu kısımda kameradan aldığımız anlık görüntü üzerine işlem yapacağız.  Kameranın görüntü çerçevesinin pencere boyutunu değiştirmek için set fonksiyonunu kullanacağız. Öncelikle varsayılan görüntü çerçevesinin pencere boyutunu  kontrol edelim.

import cv2

kamera = cv2.VideoCapture(0)

while (True):
    ret, videoGoruntu = kamera.read()
    cv2.imshow("Video Okuma Islemi", videoGoruntu)
    if cv2.waitKey(50) & 0xFF == ord('x'):
        break

kamera.release()
cv2.destroyAllWindows()

Yukarıdaki videoda gördüğünüz üzere varsayılan bir boyutta kamera çerçevemiz oluşturuldu. Şimdi biz bu çerçevemizin boyutlarını küçültelim.

import cv2

kamera = cv2.VideoCapture(0)


kamera.set(cv2.CAP_PROP_FRAME_WIDTH,200)
kamera.set(cv2.CAP_PROP_FRAME_HEIGHT,200)

while (True):
    ret, videoGoruntu = kamera.read()
    cv2.imshow("Bilgisayar Kamerasi", videoGoruntu)
    if cv2.waitKey(50) & 0xFF == ord('x'):
        break

kamera.release()
cv2.destroyAllWindows()

Çerçeveyi yeniden boyutlandırma işlemimiz başarıyla gerçekleşti. Burada kullandığımız  set fonksiyonunu incelediğimiz sırasıyla fonksiyona  cv2.CAP_PROP_FRAME_WIDTH (çerçeve genişliği) ve cv2.CAP_PROP_FRAME_HEIGHT (çerçeve yüksekliği) parametrelerini ve 200 değerlerini gönderdik. Videoda da gördüğünüz üzere en son derleme yaptığımızda yeni çerçevemiz 200×200’lük olarak karşımıza çıktı.

Gri Tonlama

Dijital görüntüler kırmızı, yeşil ve mavi ( Red Green Blue [RGB]  ) renklerin bir kombinasyonu kullanılarak görüntülendiğinden , her pikselin üç ayrı parlaklık değeri vardır.  Günlük olarak kullanılan filtre programlarında gri tonlama yaparken renkli resim üzerinden tüm renk bilgilerini kaldırır ve yalnızca her renk pikselin parlaklığını bırakır. Oluşan gri tonlamalı olan resimler siyahtan beyaza kadar tek renkli tonlardan oluşmaktadır. Resimlerdeki gri tonlama her piksel değerinin ışık yoğunluğunu taşımaktadır.

mobilhanem_RGB2GRAY
Temel Renklerin Gri Ton Karşılığı

Biz çalışmalarımızda gri ton resimleri, kenar tespiti yada eşik uygulamaları gibi farklı amaçlar için ilerleyen uygulamalarımız için kullanacağız. Şimdi kameradan alınan görüntüyü hem normal hali ile görelim hemde gri tona çevrilmiş halini görelim.

import cv2

kamera = cv2.VideoCapture(0)

kamera.set(cv2.CAP_PROP_FRAME_WIDTH,600)
kamera.set(cv2.CAP_PROP_FRAME_HEIGHT,600)

while (True):
    ret, videoGoruntu = kamera.read()
    griTon=cv2.cvtColor(videoGoruntu,cv2.COLOR_RGB2GRAY)

    cv2.imshow("Bilgisayar Kamerasi ( ORJINAL GORUNTU )", videoGoruntu)
    cv2.imshow("Bilgisayar Kamerasi (GRI TONLAMALI GORUNTU )", griTon)

    if cv2.waitKey(50) & 0xFF == ord('x'):
        break

kamera.release()
cv2.destroyAllWindows()

Yukarıdaki kod bloğunu incelediğimizde cv2.cvtColor() fonksiyonunda ilk parametre olarak kameradan aldığımız görüntüyü , ikinci olarak ise resmimizi gri tona çevirecek olan cv2.COLOR_RGB2GRAY  parametresini gönderdik. En son bize geri dönen değeri griTon değişkenimize aktardık. En son olarakta  gri tona çevrilmiş görüntümüzü imshow fonksiyonu ile ekranda göstererek işlemimizi tamamladık.

 Videoda da  gördüğünüz üzere renkli ve gri ton için iki farklı pencere oluşturarak ekranımızda gösterdik.

Mobilhanem.com da Python ile Görüntü İşleme serisinde bir dersin daha sonuna geldik. Bu hafta Python ile Görüntü İşleme dersimizde OpenCv’de Video Boyutlandırma ve Gri Tonlama ‘dan bahsettik. Umarım sizin için faydalı bir yazı olmuştur. Bir sonraki  OpenCv’de Video Çözünürlüğü ve Skalalama dersinde görüşmek üzere. Eksik ya da yanlış gördüğünüz bir şey varsa lütfen iletişime geçmekten çekinmeyin. Sorularınızı buradan sorabilirsiniz.

Tüm Görüntü İşleme Dersleri için tıklayınız.

Kaynak: Link1 

Kaynak : Link2

22

Yunus Emre Aydın

Yazılım Mühendisi

2 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?