4 Ekim 2019 Cuma

Renk Uzayı

Renk Uzayı Nedir
Renk uzayı (Color Space) rengi tanımlayan çok boyutlu modeldir.

Çok boyutlu bir uzaydan bahsedildiği için  model eksenleri ile beraber düşünülmelidir. Bir çok renk uzayı kolaylık açısından 3 eksen kullanır.
"Color Space represents a system for measuring colors, typically using three separate values or components"
Örneğin RGB'nin eksenleri Red, Green ve Blue'dur. CMYK'nin eksenleri Cyan, Magenta, Yellow ve K:black'tir.
Renk uzayının kapsadığı tüm renklere gamut denilir. Bazı renk uzayları daha küçük gamuta sahiptir. Aşağıdaki şekilde CMYK'nın sRGB'y göre daha küçük olduğu görülebilir.
enter image description here

Bazı renk uzayı örnekleri : RGB, CMYK,HSL,HSV,YCC

Kanal
Renk uzayındaki eksen sayısı gibi düşünülebilir.
Gri tonlamalı bir görüntünün kanal (channel) sayısı 1 iken, renkli bir görüntünün (RGB) kanalı sayısı 3'tür.

Renk Çevrimi
Bir renk uzayındaki rengi, başka bir uzaydaki renge çevirmek mümkün. Çevrim için formüller tanımlı.

Örneğin RGB'den CMY uzayına geçmek istersek aşağıdaki formülü kullanırız.
C = 1 - R
M = 1 - G
Y = 1 - B

1. RGB Renk Uzayı
RGB Renk Uzayı yazısına taşıdım.

2. CMYK Renk Uzayı
CMYK Renk Uzayı yazısına taşıdım.

3. HSV Renk Uzayı
HSV Renk Uzayı yazısına taşıdım

4. HSL Renk Uzayı
HSL (Hue, Saturation, Lightness) anlamına gelir. Yani
Hue : Renk tonu Saturation : Doyma Lightness : Parlaklık.

Hue - yani renk tonuna göre - sıralamak gökkuşağını elde etmek için kullanılabilir.

Açıklaması şöyle.
HSL (also known as HLS), like HSV, is a color model that transforms RGB colors to ease intuition. An HSL color consists of three components, in the following order:

-Hue is the same for a given RGB color as in HSV.
-A component called "saturation" is the distance of the color from gray (but not necessarily from black or white), which is 0 or greater and 1 or less.
-A component variously called "lightness", "luminance", or "luminosity", is roughly the amount of black or white mixed with the color and is 0 or greater and 1 or less, where 0 is black, 1 is white, closer to 0 means closer to black, and closer to 1 means closer to white.
Örnek
OpenCV'de HLS sabitleri kullanılabilir.

Resmin Renk Uzayını Belirleme

Java
Image.Flags alanına bakılıyor. Şöyle yaparız:
public static bool IsCMYK(Image image)
{
     var flags = (ImageFlags)image.Flags;
     if (flags.HasFlag(ImageFlags.ColorSpaceCmyk) ||
         flags.HasFlag(ImageFlags.ColorSpaceYcck))
     {
         return true;
     }

     const int PixelFormat32bppCMYK = (15 | (32 << 8));
     return (int)image.PixelFormat == PixelFormat32bppCMYK;
} 
Linux
Linux'ta resmin renk uzayını belirlemek için file komutu kullanılabilir.

CGA Ekran Kartı -  Color Graphics Adapter
VGA'dan önce CGA vardı. Sadece 16 renk destekler. Açıklaması şöyle.
In short, a CGA monitor takes four bit RGBI color input which means 16 colors. Each RGB color bit turns an electron gun for that color and I bit adds intensity to all of the guns, and brown color is handled with an exception.
Açıklaması şöyle
The IBM CGA video card generated 16 colours indicated via four binary TTL signals: R, G, B and I (red, green, blue and intensity).
VGA Ekran Kartı
VGA Ekran Kartı yazısına taşıdım. 256 renk destekler

PCI
Açıklaması şöyle. PCI kartlar da VGA ile uyumlu
PCI goes to great lengths to preserve backwards compatibility with ISA-based VGA, providing support for “VGA compatible” adapters so that they can appear in memory at the same locations and use the same I/O ports as ISA VGA cards. So accesses to the VGA registers and to the VGA buffer (at 0xA0000) go directly to the main PCI VGA compatible adapter in the system, with no change required in the operating system or programs running on it.



Hiç yorum yok:

Yorum Gönder