Renk Uzayı

Created with Sketch.
  • Renk uzayının ne demek olduğunu ve bir resmin renk uzayı nasıl değiştirebileceğinizi öğreneceksiniz.
  • Tüm bunları yapabilmek için de yeni bir fonksiyonla tanışacaksınız: cv2.cvtColor()

1. Renk Uzayı Nedir ?

Renk uzayı kavramı oldukça derin matematiksel bir konu olsa da biz bu konuyu OpenCV uygulamalarıyla oldukça anlaşılır bir hale getireceğiz. Renk uzayı, belirli renk organizasyonuna verilen isimdir. Renklerin çok fazla olması, onları daha kullanışlı ve erişşilebilir hale getirmek için sınıflandırma ihtiyacını doğurmuştur. Bu şekilde de renk uzayı kavramı ortaya çıkmıştır.

Şimdilik en çok kullanacağımız 2 renk uzaylarını inceleyelim:

RGB : Kırmızı, yeşil ve mavinin her piksellerde değişik yoğunluklarda tutulduğu renk uzayıdır. Her bir piksel bu renklerin belirli yoğunluklarda saklandığı 3 elemanlı bir diziye sahiptir. 3 baytlık veriler her bir piksel için 3 farklı parçaya ayrılır. Bir bayt kırmızının pikseldeki yoğunluğu, ikinci bayt yeşilin yoğunluğu ve üçüncü baytta mavinin yoğunluğudur.

Her bir renk bu üç rengin farklı miktarda birbirleriyle karışımı sonucu ortaya çıkmaktadır. İstediğiniz herhangi bir rengin RGB kodlarını, Google’a “color picker” yazarak veya buraya tıklayarak öğrenebilirsiniz.

HSV : Sırasıyla Hue(renk özü), Saturation(doygunluk), Value(değer) sözcüklerinin baş harflerinden oluşmuştur. Her bir renk bu üç elemanlı dizinin kombinasyonu biçiminde ifade edilir. İstediğiniz herhangi bir rengin HSV kodlarını öğrenmek için buraya tıklayabilirsiniz.

Bu renk uzayını görüntü işlemede kullanmamızın amacı bazı renkleri resimden ayırabilmektir. Bu sayede videolardaki istediğimiz herhangi bir nesneyi de takip edebiliyoruz. Örneklerde ne demek istediğimi daha iyi anlayacaksınız.

Bu renk uzaylarının dışında bir de “grayscale” kavramı vardır. Grayscale, sadece siyah ve beyaz renk tonlarından oluşan görüntülerdir.

Genelde elimizdeki görüntüleri işlemeye başlamadan önce onları önce boz tonlara çeviririz. Bunun nedeni RGB renk uzayındaki bir rengi işlemek 3 renk verisi barındırdığından daha zordur. Bu işlem yapmamızı zorlaştıran bir durumdur.

2. Renk Uzaylarını Değiştirme

Renk uzaylarını öğrendiğimize artık birbirlerine dönüştürmeyi görebiliriz. İl olarak en çok kullanacağımız renk formatı olan BGR’ı boz tonlara dönüştürelim. Çünkü daha öncede sözünü ettiğim gibi bu işlem OpenCV için oldukça önemlidir.

Burada cv2.cvtColor(resim,flag) fonksiyonunu kullanırız. İlk parametre renk uzayını değiştirmek istediğimiz resim ve ikinci parametrede bir flag. Yani yapmak istediğimiz dönüşümü temsil eden girdi.

import cv2

img = cv2.imread("---")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

Dönüşüm işlemini yaparken amacımız BGR’ı boz tonlara çevirmek olduğundan flag parametresini cv2.COLOR_BGR2GRAY olarak girmemiz gerekiyor. Şimdi yaptığımız bu dönüşümün çıktısını görmek ve ilk resimden ayırabilmek için hem ilk resmi hemde boz tonlardaki resmi görelim:

import cv2

img = cv2.imread("---")
gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

cv2.imshow("image",img)
cv2.imshow("gray image",gray_img)

cv2.waitKey(0)
cv2.destroyAllWindows()

Yorum yapılmamış

Yorumunuzu ekleyin