Bu bölümde sayısal görüntülerin bilgisayarda nasıl çalıştığını anlatmak istiyorum.
İşte, burada bir örnek var: Birkaç sarı çiçeğin görüntüsü. Baktığımız şey
organik, yuvarlak hatlı, bütünsel bir görüntü. Bilgisayarda ise görüntü
çok sayıda küçük sayıya dönüşecek. Peki bu nasıl oluyor?
Şimdi, sol üstteki şu çiçeğe biraz yaklaşalım. Ortasında minik bir şey olan
şu küçük yeşil alanı görüyorsunuz. Tam o karenin üzerine on kat yaklaşırsam,
işte böyle görünür. Demek ki, farkettiğiniz gibi,
görüntü şu minik kare şeylerden oluşuyor. Bunlara piksel deniyor. Her bir piksel
kare şeklindedir. Son derece küçüktürler. Bunun için kesin bir sayı veremeyiz ama
santimetreye 40 kadarı sığıyordur. Her piksel sadece tek bir renk gösterir. Yani, tek bir renkten oluşan
bir kare olarak orada durur. İlginç olan şu ki; burada baktığınız zaman
son derece yapay ve keskin kenarlı bir görüntüsü var çünkü piksel
o kadar küçük ki şuraya, orijinal görüntüye baktığınızda tamamen
doğru görünüyor. Göz öteki türlü algılamıyor. Piksellerin yeterince küçük olmasından dolayı, o küçük keskin
kenarları görmüyorsunuz. Yakınlaştığınızda ve parçaları algıladığınızdaysa böyle görüyorsunuzi
Bir görüntüde kaç piksel olduğunu merak ediyorsanız, bu sadece basit bir çarpım
işlemi gerektirir. 800 piksel genişliğinde ve 600 piksel yüksekliğinde bir görüntüm varsa
gerisi sadece çarpma yapmaya bakıyor. Dolayısıyla ikisini çarpıyorum ve
sonuç 480.000 piksel. Megapiksel terimini duymuşsunuzdur. Genellikle bilgisayar, kamera ve
benzeri araçlara ilişkin kullanılır. Bir megapiksel bir milyon pikseldir. Bendeki 800x600 görüntüde
480.000 piksel var. Bu da demektir ki yaklaşık olarak yarım megapiksel ediyor.
Aslında güncel standartlar ışığında çok büyük bir görüntü sayılmaz. Günümüzde
sayısal bir kamera, hattâ telefonların üzerindekiler bile, beş megapiksel,
on megapiksel, belki yirmi megapiksel büyüklüğünde görüntü üretiyor. Bu da hayli büyük
görüntü demektir. Evet, şimdi bu şeyin nasıl çalıştığına bakalım. Şöyle bir şey yaptım.
Daha canlı olsun diye şu diyagramı hazırladım. Elimde bir görüntü olduğunda bunu karelerden oluşan bir
ızgara sistemi olarak düşünebilirim. Her bir kare bir pikseli temsil ediyor ve sadece
tek bir renkten oluşuyor. Şimdi her pikselin diğerlerine göre yerini belirlemek bakımından bir adresleme
planı yapmamız lazım. Bunu yapmak için de şurada, üstte bir dizi x sayısından yararlanıyoruz.
Öyle ki, sıfır en solda ve artarak devam ediyor. Sağa doğru gidiyor.
Ve y yönü de kendine özgü bir biçimde uzanıyor. Öyle ki,
sıfır en yukarıda, en üst surada ve y sayıları da aşağı doğru akıp gidiyor. Gösterdiğim biçim, sadece
bilgisayarlarda unsurların numaralanmasının geleneksel yoludur. Öyleyse bazı basit
örnekler yapabilirim. Diyelim ki en üst en sol piksel (0, 0) konumunda veya
x=0 y=0 diyebilirim. Onun hemen sağındaki piksele bakacak olursak; şuradaki piksel
x=1, y=0 konumunda. Geleneksel olarak koordinatlardan söz ettiğimizde
önce x sayısını, ardından y sayısını söyleriz. Demek ki şöyle diyebilirim: (1, 0).
Şimdi de şuradaki piksele bakalım. Kolayca okuduğunuz gibi, o da
x=2, y=2 konumunda. Ya da sadece (4, 2) diyebilirim. Aslına bakarsanız, belirli pikselleri
tanımlamak için bu x-y sayılarıyla uzun uzadıya uğraşmayacağız.
Bu yerleştirme düzeninin varlığını bilmeniz yeterlidir. Demek oluyor ki,
elimizde on milyon piksel de bulunsa, her bir pikselin onu diğer piksellere göre adresleyen bir
x-y sayısı vardır. Öyleyse şu soruya gelelim: Bu pikseller elimde olmasına elimde ama
herhangi belirli bir pikselin ne renk olacağını nasıl kodlayacağım? Bunu anlatmak için önce kısa bir
tarihsel yan yola sapacağım: Bu deneyi 1660larda Newton yapmıştı.
Deneyde, benim de burada benzerini çizdiğim bir prizma kullanmıştı. Yani, üçgen yüzeyleri olan
bir cam parçası. Şuradan, sol taraftan beyaz güneş ışığı geliyor ve
prizma ışığı renk tayfına ayırıyor. Burada benim bir parça beyaz
kağıt üzerine yansıttığım gibi. Bunun gösterdiği şu ki; beyaz ışık
bölünemez saf bir varlık değil. Aksine, yapısını oluşturan bu saf renklere ayrıştırılabiliyor.
Gökkuşağında gördüğünüzle bu, tamamen aynı şeylerdir.
Ayrışan renkler aslında süreklilik gösteren bir tayf halindedir ama Newton
belirli bazı renkleri tanımladı. Yani onlara isimler verdi. Bir uçta, şurada, kırmızıdan başlayıp
ardından turuncu ve sarı ve yeşil diye giden meşhur dizi işte budur. Nihayetinde,
şurada, uzak kenarda mavi, çivit mavisi ve mor var.
Bilgisayara gelirsek: Bu saf renkleri bir tür palet olarak düşünüyorum.
Aslında kullanacağımız yöntem paletten kırmızı, yeşil ve maviyi almaya dayanıyor.
Bu renkleri bir anlamda dilediğimiz diğer renkleri oluştururken yapıtaşları
gibi kullanıyoruz. Sonuç olarak, şöyle düşünebilirsiniz: Şuradan, sol taraftan gelen beyaz ışığımız var ve
şurada da yapıtaşlarını elde ettik. Yani, süreci tersinden düşünmeniz de
mümkündür. Şöyle ki, yapıtaşı renkleri alır ve bunları şu yönde geriye doğru
birleştirirsem, beyaz ışık elde ederim. Fiziktekiyle tamamen aynı değil ama
yine de konu hakkında fikir veriyor. Bilgisayarda da yapıtaşlarını alıyor ve
onları birleştiriyoruz. Öte yandan burada çivit mavisiyle ilgili biraz komik bir durum var.
Newton bunları adlandırdığında, mavi ve mor arasında çivit mavisi rengimiz oldu ve aslında benziyor da.
Acaba öyle mi? Bunun için ayrı bir isme çok ihtiyacımız varmışçasına , özel olarak
adlandıracağımıza, sadece "mavi" deyip geçemez miydik? Komik olan, bunun 1600lerde yaşamın nasıl olduğuyla biraz bağlantısı var.
Newton'un bazı mistik inançları vardı ve biz bunları bilimsel olmyan yaklaşımlar
olarak değerlendiriyoruz. O dönemde, bilinen yedi gezegen vardı ve
Newton renklerin sayısı gezegenlerin sayısıyla aynı olmalı gibi bir fikre saplanmıştı.
Kanımca Newton çivit mavisini orada araya sokuşturuverdi ki
sayılar tutsun. Evet. Şimdi yapacağım şey, belirli bir rengi kodlamak için RGB renk uzayı adı verilen
renk uzayını kullanmak. RGB kısaltması kırmızı, yeşil, mavinin baş harflerinden oluşuyor.
Ve bu yöntemle veya bunu yapmak için bir kodlama yoluna ihtiyacım var.
Oradaki ızgara sisteminde her unsurun bir rengi var. RGB renk uzayından yararlanarak ve saf kırmızı,
yeşil ve mavi ışıkları kullanıp, bunları farklı oranlarda karıştırarak
herhangi bir rengi yaratmak olası. Bunun üzerine konuşmaya devam etmektense
bir örneğe bakmak daha yararlı olacak. Şimdi şuradaki RGB Explorer gösterim
sayfasına gidiyorum. Bu bana işleyişi göstererek anlatma olanağı verecek. Şöyle:
Sol tarafta üç tane kayan kontrol düğmesi var. Şuradaki
kırmızı ışığı kontrol ediyor. Bunlara sayısal karşılıklar vereceğiz. Kırmızı en koyuya geldiğinde,
buna sıfır diyeceğiz. Ve eğer sonuna kadar açacak olursam; buna da,
255 diyeceğiz. Aslında şuraya, aşağıya bakarsanız; kayan düğmelerin sayısal karşılıklarını
oradan okuyabilirsiniz. Üç tane kayan güğmem var: Kırmızı için bir düğme,
yeşil ışık yapmak için bir düğme ve mavi ışık yapmak için de bir mavi düğmesi.
RGB renk uzayı için stratejimiz budur. Elinizde bu üç düğme var.
Üçünü kullanarak kırmızı, yeşil ve mavi ışıkların parlaklıklarını değiştirebiliyorum.
Sonuçta öyle oluyor ki; kırmızı, yeşil ve maviyi uygun oranlarda karıştırarak dilediğiniz
her rengi elde ediyorsunuz. Bazı örnekler göstereceğim. Açıktır ki, kırmızı yapmak istersem
kırmızı düğmesini sonuna kadar açacağım. Benzer şekilde, yeşil yapmak istersem, yeşil güğmesini
sonuna kadar açacağım. Düğmeyi sonuna kadar getirirseniz, bir anlamda rengin en açık
tonunu elde ediyorsunuz. Daha koyu bir yeşil isterseniz, yeşil düğmesini alıp
aşağı doğru çekiyorsunuz. Böylece daha koyu bir yeşil oluyor. Aslında
şu en solda dayandığı yer, sıfır sayıları, siyahı ifade eder. Bir anlamda, yaptığım şey
yeşili almak ve onu siyaha doğru yaklaştırmak oluyor.
Ve bu da koyu yeşil. Öte yandan, beyaz yapmak istersem, bu defa
kırmızıyı alıp sonuna kadar açıyorum. Yeşili ve maviyi de
açıyorum, sonuna kadar; ve beyaz elde etmiş oluyorum. Bu durumda bütün renkler 255 değerinde ve
bu da beyaz. ve ardından, hepsini en aşağı çekersem, hepsini sıfır yaparsam
bu da siyah. Şimdi de bazı karışımlar yapayım. Bana kalırsa en ilginci
kırmızıyla yeşili birlikte kullanmak. Kırmızıyı açarsam ve ardından
yeşili sonuna kadar açarsam, sarı elde ederim. Birazcık daha
koyu sarı istersem, kırmızı ve teşili birbirine biraz yakın tutarım ama
ikisini birden azar azar siyaha doğru götürürüm ve böylece
daha koyu bir sarı elde ederim. Veya şu yöne gider ve daha da koyu bir sarı elde ederiz.
Turuncu elde etmek istersem ne yapmam gerekir? Turuncuyu bir karışım olarak düşünelim.
Sarıyı biraz andırıyor ama kırmızı ve yeşilin benzer miktarda olması yerine
kırmızı biraz daha baskın. Kırmızı ve yeşil renklerim şurada. Kırmızıyı biraz daha
açıyorum ve yeşili biraz daha kısıyorum. Böylece hoş bir turuncu
elde ediyoruz. Yol işaretlerinin turuncusu gibi; hoş bir turuncu oldu. Demek oluyor ki
bunları azar azar o yana bu yana çekiştirerek sonunda çok sayıda hoş
renk elde edebilirsiniz. Şimdi bakalım; yapmak istediğim birşey daha var.
Evet, bir çeşit açık yeşil yapacağım. Şimdi size pastel sarı yapmanın
yolunu göstereyim. Şurada elimde kırmızı var ve yeşil en sona kadar
açılmış. Böylece bu çok parlak sarıyı elde ediyorum. Pastel renkleri açık ve soluk, adeta dumanlı
olarak düşünürüz. Bunu yapmanın yolu da şudur:
İçine biraz mavi ekleyeceğim. Dolayısıyla şuradan maviyi 180, 185 civarına açıyorum.
Ve gördüğünüz gibi, elimizde hâlâ sarı renk var ama bu kez daha pastel bir ton; biraz dumanlı.
Bunu şöyle de düşünebilirsiniz: Üç düğmenin üçünü de sonuna dek açsaydım,
beyaz elde ederdim. Demek ki maviyi biraz açarak, bir anlamda beyaza biraz yaklaştım
ama tam beyaz yerine kırmızı ve yeşili mavinin
birazıyla kullanarak bu sarıyı elde ediyorum. Bu sınıf için
bu kadarı yeterlidir. Her ayrı renk için üç sayının da ne olduğunu
bilmenizi beklemiyorum sizden. Sadece renkleri elde etmenin temel
yöntemini kavramanız yeterlidir. Bu temel yöntem de kırmızı, yeşil ve maviyi değişen
ornlarda karıştırmaktan ibarettir. Göstermek istediğim birşey daha var; şimdi ona bakalım.
Kırmızı, yeşil ve mavi var elimizde ve diğer bileşimleri
elde edeceğiz. Mavi ve yeşili, gördüğünüz gibi bir tür turkuaz veriyor. Bir tür yeşilimsi mavi
olduğu için, beklenen bir durum. Son karışımımız da kırmızı ve mavi olacak.
Kırmızı ve mavi kullanarak bir tür mor elde edersiniz. Bu da kırmızı ve mavi karışımı
için beklenmedik değildir. Evet, şimdi kendi görüntülerimize dönelim.
Kırmızı, yeşil ve maviışığı alıp bunları birbiriyle karıştırma yöntemini öğrendik.
Demek ki, çok sayıda piksel içeren bir görüntü bakımından da bu böyle ve
her bir pikselin belirli bir rengi var. Bu renk ise kırmızı, yeşil, mavi
seviyelerince tanımlanıyor. Veya, sayısal olarak bunun anlamı,
temelde her pikselin sadece üç sayısı olduğudur. Yani, şöyle diyebilirm: Kırmızı 250 ve yeşil 10 ve
mavi de 240'dır. Ama aslında, büyük olasılıkla şöyle diyeceğiz:
(250, 10, 40) pikseli. her zaman bu sırayı kullanacağız. Önce kırmızının değeri,
ardından yeşilin değeri ve ardından mavinin değeri. Demek ki şuradaki diyagramımı biraz daha iyileştirebilirim.
Izgara planlı piksellerim burada. Görüntüyü bunlar oluşturuyor. Önceden olduğu gibi,
şimdi de x ve y'lerimiz var. Dikkat ederseniz şimdi bu pisellerin her biri
kendi üçlü sayılarını yansıtıyor. Demek ki, belki şuradaki
(6, 250, 7) oluyor. 6 oldukça düşük; yeşil 250, çok yüksek ve mavi 7,
bu da düşük. Demek ki, bu esas olarak yeşil, değil mi? Yeşilin değeri hayli yüksek. Ve şu piksel de
(241, 252, 23) olabilir. Kırmızı ve yeşil epeyce yüksek, mavi düşük. Ve zaten bu da aslında
sarının bir tonu. Şunu söylemeliyim ki, gerçek dünyada sayısal görüntüleri
ele aldığımızda işler biraz farklıdır. Kayan düğmelerle oynarken, hatırlarsınız, renkleri
ya 250 ya 0 yapmaya eğilimliydim. Gerçek dünyada her zaman bunların arasında bir
sayı bulursunuz. 237 gibi veya 26 gibi. İçlerindeki renk her neyse
o belirli tonu yapmak için karıştırılmış birşeyler vardır. Bir görüntüyü bir anlamda tanımlamak için
şimdilik söyleyeceklerimiz bunlar. Demek ki, elimizde piksellerden oluşan bu büyük
ızgara planı var. Her piksel, her tek piksel sadece bir renk gösteriyor. Ve bu renk
sadece üç sayı tarafından belirleniyor. Şimdi biraz geri gidip bakalım. Biliyorsunuz başlangıçta
şu tam, büyük görüntüyle başlamıştık. Ardından daha küçük parçasına geçmiştim çünkü bunun ızgara planı
çok fazla miktarda sayı içerecekti. Aslında bu yaptığım bilgisayar biliminde
çok sık kullanılır. Bütün bir görüntüyle veya bütün bir sesle veya
bütün bir ansiklopediyle vb. başlarsınız. İnsanlar olarak bizler bunu
organik bir bütün olarak kavrarız. Bilgisayarda ise kaçınılmaz olarak tüm bu verinin
çok sayıda küçük sayıya indirilmesini sağlayacak yöntemlere gereksinim vardır. Bütünün
bilgisayarda temsil edilmesinin yolu budur. Veri üzerinde yapılan bir işlemi
düşünelim. Diyelim ki bir görüntüyü alıp onu biraz daha açık hale getirmek istiyorum.
Bilgisayarda, bunu sayılar üzerinde bazı işlemlere tercüme etmemiz gerekir.
Bir görüntüyü az daha açık hale getirmek istersem ne yaparım?
İyi ki elimizde tüm bu kırmızı, yeşil, mavi sayıları var. Belki de yapmam gereken sadece
bunların her birine on eklemektir. RGB Explorer'ı hatırlayacak olursanız
her bir düğmeyi birazcık daha sağa kaydıracağım yani. Böylece görüntü biraz daha
açık hale gelecek. Her neyse; bunu bir iki bölüm sonra göreceğiz. Ama genel olarak konuşursak,
bilgisayarlarda [duyulmuyor] çok sayıda küçük sayı bulunur.
Bilgisayarın dünyası böyle bir alandır. Bunun üzerinde şimdiden sonra da
çokça duracağız.