Skip to content

Instantly share code, notes, and snippets.

@Mervetafrali
Created February 23, 2017 14:23
Show Gist options
  • Save Mervetafrali/942ad0ac2141c0f145dde5a0b9e6fbd8 to your computer and use it in GitHub Desktop.
Save Mervetafrali/942ad0ac2141c0f145dde5a0b9e6fbd8 to your computer and use it in GitHub Desktop.

RGB renk uzayından HSV renk uzayına çevirme

1) İçindekiler

  1. İçindekiler

  2. Versiyon Geçmişi

  3. Giriş

  4. HSV Renk Uzayı

    1. HSV Modelleme

  5. Uygulama Görüntüleri

  6. Referanslar

2) Versiyon Geçmişi

Tarih Değişiklik Kişi

10.01.2017

Gönül Toktay

10.01.2017

M.Sıla Genç

30.01.2017

Düzenleme

Merve Tafralı

3) Giriş

Bu bölümde RGB renk uzayında tanımlanmış bir görüntünün nasıl HSV renk uzayına dönüşümü anlatılmıştır. RGB renk uzayı ile HSV renk uzayı arasındaki farklar ve RGB renk uzayındaki bir görüntünün HSV renk uzayına nasıl aktarıldığı ve modellemenin nasıl yapıldığı anlatılmıştır. Örnek olarak Python dili ile bir uygulama geliştirilmiştir.

4) HSV Renk Uzayı

RGB renk uzayı genel olarak kullandığımız renk uzayıdır. Bu renk uzayında üç ana bileşen kullanılır. Görüntü r, g, b yani kırmızı, yeşil, mavi renk kodları üzerine tanımlanır. Her piksel bu renk kodlarına göre ara değerler alır. Böylece renkli bir resim elde edebiliyoruz.

HSV renk uzayı ise Hue(Renk), Saturation(Doygunluk) ve Value(Parlaklık) terimleri ile rengi tanımlar. RGB de renklerin karışımı kullanılmasına karşın HSV de renk, doygunluk ve parlaklık değerleri kullanılır. Doygunluk rengin canlılığını belirlerken parlaklık rengin aydınlığını ifade eder. Örneğin; HSV uzayında siyah renk için renk ve doygunluk değerleri 0 ile 255 arasında herhangi bir alabilir iken parlaklık değeri sıfırdır. Beyaz renkte ise parlaklık değeri 255’dir. Buna göre herhangi bir bilgisayarlı görme/görüntü işleme uygulamasında belirli renkteki bir nesneyi ayırt etmek istediğimizde HSV renk uzayını kullanmak daha elverişlidir. Çünkü RGB renk uzayında eşik değeri için kullanacağımız filtreler yerine burada sadece Hue bileşeni ile eşik değeri belirleyebiliriz. Daha net renkler elde edebiliriz. 1978 yılında Alvy Ray Smith tarafından RGB uzayına göre insan görme sistemine daha benzer bir yapı oluşturmak amacıyla tanımlandı. Şekil 1’de görüleceği üzere H değeri 0-360° arasında değişirken renklerin öz değerleri değişir. Ancak H sabit olarak seçilir ve diğer değerler (S-V) 0-100 arasında değiştirilirse aynı rengin farklı doygunluk ve parlaklıktaki değerleri elde edilir. Bu özelliğinden dolayı HSV renk temelli ayırma işlemlerinde sıklıkla tercih edilir. İki uzay arasındaki dönüşüm doğrusal olmayan bir bağlantı ile gerçekleştirilir.

resim 1

4.1) HSV Modelleme

RGB renk uzayından HSV renk uzayına geçiş yapmak için belirli formüller kullandık. Burada dikkat edilmesi gereken nokta RGB değerlerini 0-1 arasına indirilmesi gerekliliğidir. Her pikselin değeri 255 ile bölünerek normalize edildikten sonra aşağıdaki formüller ile HSV değerleri bulunabilir.

İlk olarak görüntünün piksel değerlerinde bulunan renk kodları alınır [1].
R' = R/255
G' = G/255
B' = B/255

Cmax = max (R', G', B')
Cmin = min (R', G', B')
Δ = Cmax - Cmin

Hue(Renk) değeri için hesaplama:

Saturation(Doygunluk) değeri için hesaplama:

resim 3

Value(Parlaklık) değeri için hesaplama:

V = Cmax

5) Uygulama Görüntüleri

1.RGB renk uzayındaki görüntü.

resim 4

2.HSV renk uzayına çevrilen görüntü.

resim 5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment