TEL 519E · Görüntü İşleme
Hafta 2

Görüntü elde etme, örnekleme, renk ve geometri

Işığın sensöre ulaşmasından piksel matrisinin oluşmasına kadar olan süreç, kaç örneğin yettiği (Nyquist), görüntüyü büyütüp küçültmek, pikseller arası ilişkiler, renklerin sayılarla nasıl gösterildiği ve görüntünün geometrisinin nasıl değiştirildiği.

Kitap: G&W 2.2–2.6, 6.1–6.2 Slaytlar: 2-1, 2-3, 2-4, 2-5, 2-6, 2-7, 2-10 Demo: 13 etkileşimli

2.1Görüntü oluşumu

Basit bir görüntü oluşum modeli üç adımdan oluşur:

  1. Sahne tek bir kaynakla aydınlatılır.
  2. Sahne ışınımı kameraya doğru yansıtır.
  3. Kamera bu ışınımı algılar: eskiden filmdeki kimyasallarla, bugün sensör dizisiyle.

İğne deliği kamera

nesne (yükseklik Y) iğne deliği görüntü düzlemi ters görüntü Z f
Şekil 2.1 Işık küçük bir delikten geçip görüntü düzlemine düşer. Görüntü ters ve ölçeklenmiştir. Gerçek kameralarda iğne deliği yoktur, bu yalnızca basit bir modeldir.

Benzer üçgenlerden, sahnedeki $(X, Y, Z)$ noktasının görüntü düzlemindeki izdüşümü (odak uzaklığı $f$):

$$x = -f\,\frac{X}{Z}, \qquad y = -f\,\frac{Y}{Z}$$

Eksi işareti ters çevrilmeyi, $1/Z$ çarpanı ise perspektifi gösterir: uzaktaki nesneler küçük görünür. Pratikte daha fazla ışık almak için açıklık büyütülür. Bu durumda her sahne noktasından gelen ışın demetini görüntü düzlemindeki tek bir noktaya odaklamak için açıklığa bir mercek yerleştirilir.

Parametre grubuİçerik
OptikMercek tipi, odak uzaklığı, görüş alanı (field of view)
FotometrikAydınlatmanın tipi, şiddeti ve yönü; görülen yüzeylerin yansıtma özellikleri
Geometrikİzdüşüm tipi; kameranın uzaydaki konumu ve yönelimi; görüntülemenin getirdiği perspektif bozulmaları

Dijital kamerada görüntü oluşumu

1

Nesnenin görüntüsü

Sürekli konum, sürekli renk.

2

Mercekle izdüşüm

Görüntü sensör düzlemine odaklanır.

3

Ayrık sensör dizisi

Her sensör kendi küçük alanına düşen ışığın ortalamasını kaydeder: örnekleme. Sonuç ayrık konumlarda sürekli renklerdir.

4

Nicemleme

Ölçülen sürekli değerler sonlu bir değer kümesine eşlenir: dijital görüntü.

2.2Görüntü elde etme ve sensörler

Görüntüler genellikle bir sahneyi aydınlatıp nesnelerin yansıttığı enerjiyi soğurarak üretilir. Ancak “aydınlatma” ve “sahne” kavramları sıradan anlamlarının çok dışında olabilir: iskeletin X-ışını görüntüsü, anne karnındaki bebeğin ultrasonu, moleküllerin elektron mikroskobu görüntüleri…

Gelen enerji, o enerji türüne duyarlı bir sensör malzemesine çarpar ve bir gerilim üretir. Bu gerilim sayısallaştırılır. Sensörler üç şekilde düzenlenebilir:

Tek sensör

Sensör ile nesne arasında x ve y yönünde göreli hareket gerekir. Yavaş ama hassastır (ör. mikro-yoğunluk ölçer).

Sensör şeridi (çizgi)

Bir yönde çizgi, diğer yönde hareket: düz yataklı tarayıcı, uçaktan görüntüleme. Halka biçimli şeritler CT'de kullanılır.

2B sensör dizisi

Dijital kameralar. Görünür ve yakın kızılötesi görüntülemenin çoğu bugün 2B CCD (veya CMOS) dizileriyle yapılır.

CCD (yük bağlaşımlı aygıt)

CCD (charge-coupled device): küçük katı hal hücreleri ışık enerjisini elektrik yüküne çevirir. Görüntü düzlemi, bilgisayarın satır satır okuyabildiği dijital bir bellek gibi davranır. Yapısı:

Etkileşimli

CCD okuma (kova zinciri)

Adım

Dikey kaydırma, tüm satırları bir aşağı indirir ve en alttaki satırı yatay kaydediciye aktarır. Yatay kaydırma, kaydedicideki yükleri sağa kaydırır; en sağdaki yük çıkış yükseltecine gider. Kaydedici boşalınca bir sonraki dikey kaydırma yapılır.

Kitaptan ek

Bugünkü telefon kameralarının çoğu CMOS sensör kullanır. CMOS'ta her pikselin kendi yükselteci vardır ve pikseller tek tek okunabilir. Renk için sensörün önüne bir renk filtresi dizisi (genellikle Bayer deseni: her 2×2 blokta 2 yeşil, 1 kırmızı, 1 mavi) konur. Eksik renkler komşu piksellerden interpolasyonla bulunur.

2.3Örnekleme ve nicemleme

Tanım
  • Örnekleme (sampling): görüntünün değerini sonlu sayıda noktada ölçmek, yani uzamsal koordinatları sayısallaştırmak.
  • Nicemleme (quantization): örneklenen noktada ölçülen değeri bir tamsayıyla temsil etmek, yani genliği (parlaklık seviyesini) sayısallaştırmak.

Dijital sensör yalnızca sınırlı sayıda örneği, ayrık bir enerji seviyeleri kümesinde ölçebilir. Dijital görüntü bu yüzden gerçek dünya sahnesinin her zaman yalnızca bir yaklaşıklığıdır.

Etkileşimli

Bir tarama çizgisinin örneklenmesi ve nicemlenmesi

İnce eğri: görüntüdeki bir satır boyunca sürekli yoğunluk. Dikey çizgiler: örnekleme konumları. Yatay çizgiler: izin verilen L seviye. Noktalar: her örneğin en yakın seviyeye yuvarlanmış değeri (G&W Şekil 2.16'nın benzeri).

Sensör, pikselin kapladığı küçük karedeki sürekli görüntünün ortalamasını ölçer (slaytta: “take the average within each square”). Piksel kenarı $\Delta$ ise:

$$I_S(r,c) = \frac{1}{\Delta^2} \iint_{\text{piksel }(r,c)} I_C(\xi, \eta)\, d\xi\, d\eta$$

Nicemlemede, sürekli değerler sonlu ve ayrık bir renk kümesine eşlenir. 8 bitlik bir değeri $k$ bite indiren düzgün nicemleyici örneğin $q = \lfloor r / 2^{8-k} \rfloor$ şeklindedir.

Etkileşimli

Uzamsal örnekleme ve gri seviye nicemleme

Sonuç, karşılaştırma için piksel çoğaltmayla 256×256 boyutunda gösteriliyor.
Histogram: kullanılan gri seviyeler

k ≤ 4 olduğunda gülün arkasındaki düzgün geçişlerde yanlış konturlama (false contouring) belirir: göz, yapay basamakları kontur olarak algılar. Çarpan büyüdükçe dama tahtası etkisi görülür.

2.4Uzamsal ve yoğunluk çözünürlüğü

Uzamsal çözünürlük

Görüntünün uzamsal çözünürlüğü örneklemenin nasıl yapıldığıyla belirlenir. Kısaca ayırt edilebilen en küçük ayrıntıdır.

Önemli

Büyük görüntü boyutu tek başına yüksek uzamsal çözünürlük anlamına gelmez. 1280×960'lık bir fotoğraf geniş bir manzarayı gösteriyorsa, tek bir piksel sahnede büyük bir alana karşılık gelir. Çözünürlük, piksel sayısının sahnedeki fiziksel boyuta oranıyla anlamlıdır.

Yoğunluk (gri seviye) çözünürlüğü

Görüntüyü temsil etmek için kullanılan yoğunluk seviyesi sayısıdır. Ne kadar çok seviye kullanılırsa o kadar ince ayrıntı seçilebilir. Genellikle her seviyeyi saklamak için kullanılan bit sayısıyla verilir.

BitSeviye sayısıÖrnek
120, 1
2400, 01, 10, 11
4160000, 0101, 1111
825600110011, 01010101
1665 5361010101010101010

Slaytlardaki G&W Şekil 2.22 (az ayrıntılı kadın yüzü, orta ayrıntılı kameraman, çok ayrıntılı kalabalık) bir gözlemi gösterir: çok ayrıntı içeren görüntülerde daha az gri seviye yeterlidir. Kitaptaki “eş tercih eğrileri” (isopreference curves) bunu ölçer.

Ne kadar çözünürlük yeterli?

Görüntünün içeriğine ve onunla ne yapılacağına bağlıdır. Görüntü estetik açıdan hoş görünüyor mu? Görmek istediğiniz şeyi görebiliyor musunuz? Slayttaki trafik görüntüsü araçları saymak için yeterlidir ama plakayı okumak için değildir.

Çözümlü örnek (slayt)

Sahne alanı 1 km², uzamsal çözünürlük 20 çizgi/km, 64 gri seviye. Depolama boyutu nedir?

Piksel sayısı $20 \times 20 = 400$. 64 seviye için $\log_2 64 = 6$ bit/piksel. $400 \times 6 = 2400$ bit $= 300$ bayt $\approx 0.3$ kB (sıkıştırma ve başlık hariç).

2.5Nyquist oranı, örtüşme ve Moiré

Her sinyal farklı frekanslardaki sinüs ve kosinüslerin doğrusal bir birleşimi olarak yazılabilir (Fourier, Hafta 5). Fiziksel nedenlerle gerçek dünyadaki her sinyalin en yüksek bir frekans bileşeni vardır.

Örnekleme teoremi

Bir sinyal en yüksek frekans bileşeninin iki katından fazla bir hızla örneklenirse örneklerinden tam olarak geri elde edilebilir:

$$f_s \gt 2 f_{\max} \qquad (2 f_{\max}: \text{Nyquist oranı})$$

Görüntü diliyle: piksel genişliği, görüntüdeki en küçük periyodun yarısından küçük veya ona eşit olmalıdır. Slayttaki örnekte en küçük periyot 2 mm ise 1 mm'lik pikseller hiçbir ayrıntıyı kaybetmez.

Daha düşük hızla örneklenirse (alt örnekleme, undersampling) örtüşme (aliasing) olur: örneklenmiş sinyalde, orijinalde bulunmayan frekanslar belirir. $f$ frekanslı bir bileşen $f_s$ ile örneklendiğinde, $f_s/2$'nin altına “katlanan” takma frekans:

$$f_a = \left| f - k f_s \right|, \qquad k = \operatorname{round}(f / f_s)$$
Etkileşimli

1B örtüşme: yetersiz örneklenen sinüs

Gri: gerçek sinyal. Noktalar: örnekler. Kırmızı kesikli: örneklerden geri kurulabilecek en düşük frekanslı sinüs. $f_s \gt 2f$ olduğunda kırmızı eğri gerçeğiyle çakışır; aksi halde aynı noktalardan geçen, daha yavaş, sahte bir sinüs görülür.

Moiré deseni

Moiré deseni örtüşmenin görünür bir örneğidir (G&W Şekil 2.24). Neredeyse eş aralıklı iki periyodik desen üst üste geldiğinde, desenlerin hiçbirinde bulunmayan düşük frekanslı yeni bir desen belirir. Taranmış gazete fotoğraflarında ve televizyonda çizgili gömleklerde görülür.

Etkileşimli

İki ızgaranın üst üste binmesi

Etkileşimli

2B örtüşme: bölge plakasının alt örneklenmesi

 
Orijinal bölge plakası: frekans merkezden dışa doğru artar.

Filtresiz alt örneklemede köşelerde, orijinalde olmayan sahte halkalar belirir. Bunlar örtüşmedir. Önce bulanıklaştırmak yüksek frekansları bastırır; sahte halkalar kaybolur, onların yerine bölge düzgün griye döner. Kitaptaki not: sonlu boyutlu görüntülerin spektrumu teorik olarak sonsuzdur, bu yüzden örtüşme tamamen önlenemez, yalnızca azaltılabilir.

2.6İnterpolasyon: büyütme ve küçültme

Tanım

İnterpolasyon: bilinen verileri kullanarak bilinmeyen konumlardaki değerleri kestirmek. Büyütme (zooming), küçültme (shrinking), döndürme ve geometrik düzeltmelerde kullanılır.

Büyütme iki adımdır: önce yeni piksel konumları oluşturulur, sonra bu konumlara yoğunluk atanır. Yeni konumlar eski ızgaraya göre genellikle tamsayı olmayan koordinatlara düşer.

En yakın komşu (nearest neighbor)

Her yeni piksele, giriş görüntüsünde en yakın pikselin değeri atanır. Tamsayı katlı büyütmede bu, satır ve sütunların tekrarlanmasıdır: piksel çoğaltma (pixel replication). Basit ve hızlıdır ama bloklu/dama tahtası artefaktları üretir, keskinlik kaybolur.

Çift doğrusal (bilinear)

4 en yakın komşu kullanılır, sonuç çok daha iyidir. Genel biçim $v(x,y) = ax + by + cxy + d$; dört katsayı dört komşudan bulunur. Slayttaki biçimiyle, $P(1,1)$ sol üst komşu, $d$ yatay ve $d'$ dikey kesirli uzaklık ($0 \le d, d' \lt 1$) olmak üzere:

$$P' = P(1,1)(1-d)(1-d') + P(1,2)\,d\,(1-d') + P(2,1)(1-d)\,d' + P(2,2)\,d\,d'$$
Çözümlü örnek

$P(1,1)=10$, $P(1,2)=20$, $P(2,1)=30$, $P(2,2)=40$; $d = 0.25$, $d' = 0.5$.

$$P' = 10(0.75)(0.5) + 20(0.25)(0.5) + 30(0.75)(0.5) + 40(0.25)(0.5) = 3.75 + 2.5 + 11.25 + 5 = 22.5$$

Kontrol (ayrılabilirlik): üst satırda $10 + 0.25 \cdot 10 = 12.5$, alt satırda $30 + 0.25 \cdot 10 = 32.5$, dikeyde $12.5 + 0.5 \cdot 20 = 22.5$. Çift doğrusal interpolasyon, önce bir yönde sonra diğer yönde yapılan iki doğrusal interpolasyondur.

Çift kübik (bicubic)

16 en yakın komşu (4×4) kullanılır:

$$v(x,y) = \sum_{i=0}^{3} \sum_{j=0}^{3} a_{ij}\, x^i y^j$$

16 katsayı, dört köşedeki değerler, türevler ($f_x$, $f_y$) ve çapraz türevlerden ($f_{xy}$) kurulan 16 denklemle bulunur. Görüntüler en keskin bu yöntemle elde edilir ve ince ayrıntılar korunur, ama yöntem yavaştır. Ticari yazılımların çoğunda standart yöntemdir.

Etkileşimli

8× büyütme: en yakın komşu, çift doğrusal, çift kübik

Bölge
En yakın komşu: bloklu
Çift doğrusal: yumuşak, biraz bulanık
Çift kübik: en keskin

Küçültme

Küçültme alt örneklemeyle yapılır (satır ve sütun silme). G&W Şekil 2.19'da 1024×1024'lük görüntü 32×32'ye kadar küçültülür. Şekil 2.20'de bu görüntüler piksel çoğaltmayla tekrar 1024×1024'e büyütülür ve ayrıntı kaybı ile dama tahtası etkisi açıkça görülür. Alt örnekleme örtüşmeye yol açabileceği için önce hafif bir bulanıklaştırma yapmak iyi bir uygulamadır.

B = imresize(I, 4, 'nearest');     % piksel çoğaltma
B = imresize(I, 4, 'bilinear');
B = imresize(I, 4, 'bicubic');     % varsayılan yöntem
S = imresize(I, 0.25);              % küçültürken varsayılan olarak örtüşme önleyici filtre uygulanır
S = I(1:4:end, 1:4:end);           % filtresiz alt örnekleme (satır/sütun atma)

2.7Pikseller arası temel ilişkiler

Komşuluk

$(x,y)$ konumundaki bir $p$ pikselinin üç tür komşuluğu vardır:

$p$ görüntünün kenarındaysa bazı komşular görüntünün dışına düşer.

Bitişiklik

$V$, bitişikliği tanımlamak için kullanılan değerler kümesi olsun. İkili görüntüde $V = \{1\}$, gri tonlu görüntüde ör. $V = \{50, \ldots, 60\}$ olabilir. Değerleri $V$'de olan iki piksel $p$ ve $q$ için:

Tanım
  • 4-bitişiklik: $q \in N_4(p)$.
  • 8-bitişiklik: $q \in N_8(p)$.
  • m-bitişiklik (karma): (i) $q \in N_4(p)$ veya (ii) $q \in N_D(p)$ ve $N_4(p) \cap N_4(q)$ kümesinde değeri $V$'de olan piksel yoksa.

m-bitişikliğin amacı: 8-bitişiklikte ortaya çıkan belirsizliği (aynı iki piksel arasında birden fazla yol, “üçgen” bağlantılar) ortadan kaldırmaktır. Bu belirsizlik bölge ve sınır tanımlarını ve yol hesaplarını karıştırır. m-bitişiklik, 4-yoldan gidilebiliyorsa köşegen bağlantıyı kullanmaz.

Etkileşimli

4-, 8- ve m-bitişiklik (hücrelere tıklayın)

Bitişiklik türü
Desen

Değeri 1 olan pikseller dolu, bitişik çiftler çizgiyle bağlı. Varsayılan desende 8-bitişiklik sağ üstte bir üçgen (çift yol) oluşturur; m-bitişiklik bu köşegeni kaldırır ama sağ alttaki köşegeni korur, çünkü orada 4-yol yoktur.

Yol, bağlantılılık, bölge ve sınır

Klasik sınav sorusu (G&W Problem 2.15 tipi)

Aşağıdaki görüntüde $p$ (sol alt) ile $q$ (sağ üst) arasındaki en kısa 4-, 8- ve m-yolun uzunluğunu bulun.

4-yol8-yolm-yol
$V = \{0, 1\}$yok45
$V = \{1, 2\}$646

$V=\{0,1\}$ için 4-yol yoktur, çünkü $p$'nin 4-komşularından hiçbiri üzerinden $q$'ya ulaşılamaz. Her durumda 8-yol ≤ m-yol olur; m-yol köşegeni yalnızca zorunlu olduğunda kullanır.

Uzaklık ölçüleri

$p=(x,y)$, $q=(s,t)$, $z=(v,w)$ pikselleri için $D$ bir uzaklık fonksiyonu (metrik) ise:

  1. $D(p,q) \ge 0$; $D(p,q) = 0 \iff p = q$
  2. $D(p,q) = D(q,p)$ (simetri)
  3. $D(p,z) \le D(p,q) + D(q,z)$ (üçgen eşitsizliği)
UzaklıkFormül$D \le r$ olan pikseller
Öklid $D_e$$\sqrt{(x-s)^2 + (y-t)^2}$Disk (çember)
Şehir-blok (Manhattan) $D_4$$|x-s| + |y-t|$Elmas; $D_4 = 1$ olanlar $N_4$
Satranç tahtası $D_8$$\max(|x-s|,\ |y-t|)$Kare; $D_8 = 1$ olanlar $N_8$

$D_4$ ve $D_8$ pikseller arasında bir yol olup olmamasına veya piksel değerlerine bağlı değildir, yalnızca koordinatlara bağlıdır. $D_m$ uzaklığı ise iki nokta arasındaki en kısa m-yolun uzunluğudur ve yol üzerindeki piksellerin değerlerine bağlıdır.

Çözümlü örnek

$p = (2,3)$, $q = (5,7)$: $|\Delta x| = 3$, $|\Delta y| = 4$.

$D_e = \sqrt{9 + 16} = 5$,   $D_4 = 3 + 4 = 7$,   $D_8 = \max(3,4) = 4$. Her zaman $D_8 \le D_e \le D_4$ sırası geçerlidir.

Etkileşimli

Uzaklık haritaları

Ölçü
Bir hücreye tıklayın.

Merkezdeki piksel $p$. Bir hücreye tıklayınca o hücre $q$ olur ve üç uzaklık birlikte hesaplanır.

D  = bwdist(BW, 'cityblock');    % en yakın 1-pikseline D4 uzaklığı
D  = bwdist(BW, 'chessboard');   % D8 ('euclidean' → De)
CC = bwconncomp(BW, 4);           % 4-bağlı bileşenler (8-bağlı için 8)
L  = bwlabel(BW, 8);              % bileşenleri 1, 2, 3, ... ile etiketle

2.8Küme, mantık ve aritmetik işlemler

Küme ve mantık işlemleri

Bir görüntüdeki bölge (nesne), o bölgedeki piksellerin koordinatlarından (tamsayı sıralı çiftler) oluşan bir küme olarak gösterilebilir. Temel kavramlar: $a \in A$ (eleman), $A = \emptyset$ (boş küme), $A \subseteq B$ (alt küme), $C = A \cup B$ (birleşim), $C = A \cap B$ (kesişim), $A \cap B = \emptyset$ ise ayrık kümeler, evrensel küme, tümleyen $A^c = \{w \mid w \notin A\}$, fark $A - B = \{w \mid w \in A,\ w \notin B\} = A \cap B^c$.

İkili görüntülerde bu işlemlerin karşılığı mantık işlemleridir: birleşim → OR, kesişim → AND, tümleyen → NOT; ayrıca XOR (yalnızca birinde olanlar).

Görsel

İkili görüntülerde mantık işlemleri

Beyaz = 1 (kümeye ait), siyah = 0. A − B = A AND (NOT B).

Kitaptan ek

Gri tonlu görüntülerde G&W birleşimi noktasal maksimum, kesişimi noktasal minimum, tümleyeni $(L-1) - f(x,y)$ olarak tanımlar. Sonuncusu Hafta 3'teki negatif dönüşümünün ta kendisidir.

Aritmetik işlemler

Görüntüler arasındaki aritmetik işlemler dizi (eleman eleman) işlemleridir; karşılık gelen piksel çiftleri arasında yapılır, matris çarpımı değildir:

$$s(x,y) = f + g, \quad d(x,y) = f - g, \quad p(x,y) = f \times g, \quad v(x,y) = f \div g$$

$g_i(x,y) = f(x,y) + \eta_i(x,y)$ ($\eta_i$: sıfır ortalamalı, ilintisiz, varyansı $\sigma_\eta^2$ olan gürültü) ise ortalama görüntü için:

$$\bar g(x,y) = \frac{1}{K} \sum_{i=1}^{K} g_i(x,y), \qquad E\{\bar g\} = f, \qquad \sigma_{\bar g}^2 = \frac{\sigma_\eta^2}{K} \ \ \Rightarrow\ \ \sigma_{\bar g} = \frac{\sigma_\eta}{\sqrt K}$$
Etkileşimli

K gürültülü görüntünün ortalaması

Tek bir gürültülü görüntü $g_1$
Taşma (overflow)

8 bitlik görüntülerde toplama 255'i aşabilir, çıkarma negatif olabilir. Ya sonuç kırpılır (MATLAB'de uint8 aritmetiği doyuma girer: 200 + 100 = 255, 50 − 100 = 0) ya da tam aralığa ölçeklenir:

$$f_m = f - \min(f), \qquad f_s = (L-1)\,\frac{f_m}{\max(f_m)}$$

Doğrusal ve doğrusal olmayan işlemler

Bir $H$ operatörü doğrusaldır ancak ve ancak her $a, b$ ve $f, g$ için

$$H[a f + b g] = a H[f] + b H[g]$$

yani hem toplanabilirlik hem de homojenlik sağlanıyorsa. Doğrusal işlemler iyi anlaşılmış ve öngörülebilir oldukları için yaygın kullanılır. Doğrusal olmayan işlemlerin sonucu öngörmek zordur, genellikle kuramsal olarak iyi anlaşılmamışlardır ve sonuç genliğe bağlıdır.

Çözümlü örnek (G&W): max operatörü doğrusal değildir

$f_1 = \begin{bmatrix} 0 & 2 \\ 2 & 3 \end{bmatrix}$, $f_2 = \begin{bmatrix} 6 & 5 \\ 4 & 7 \end{bmatrix}$, $a_1 = 1$, $a_2 = -1$.

Sol taraf: $\max\{f_1 - f_2\} = \max \begin{bmatrix} -6 & -3 \\ -2 & -4 \end{bmatrix} = -2$.   Sağ taraf: $\max\{f_1\} - \max\{f_2\} = 3 - 7 = -4$.   $-2 \ne -4$, doğrusal değil. Toplam operatörü ise doğrusaldır.

Nokta işlemleri (slayt 2-7, s.24): her bir giriş pikselini tek bir çıkış pikseline eşler, $I_{out}(x,y) = f[I_{in}(x,y)]$. Kontrast iyileştirme, kontrast germe, gri seviye dönüşümleri olarak da bilinir ve yalnızca gri tonla sınırlı değildir (ör. sahte renklendirme). Konu Hafta 3'te ayrıntılı işleniyor.

2.9Renk temelleri ve renk modelleri

Renk algısı

Bir nesnenin rengi, o nesneden yansıyan ışığın doğasıyla belirlenir. Işık nesneye çarptığında, nesnenin malzemesine bağlı olarak bazı dalga boyları soğurulur, bazıları yansır. Yansıyan dalga boyları nesnenin rengi olarak algılanır. Örneğin beyaz ışıkla aydınlatılan yeşil bir nesne dalga boylarının çoğunu soğurur, yeşili (≈ 500–570 nm) yansıtır.

400 nm500600700 nm

Gözde üç tür koni vardır: kırmızıya, yeşile ve maviye duyarlı. Göz bu üç ana rengi birleştirerek tüm renkleri ayırt eder. Beyin RGB sinyallerini ayrı bir parlaklık kanalına ve iki renk kanalına (ton ve doygunluk) dönüştürür. Bu yüzden renkli görüntüler üç bantla gösterilir, ama bu üç bant tek türlü değildir: R, G, B olabilir, L*, a*, b* de olabilir.

Kaynaklar arası fark

Slaytta fovea yakınındaki koni yoğunluğu için “#mavi ≪ #kırmızı < #yeşil” yazıyor. G&W 6.1 ise konilerin yaklaşık %65'inin kırmızıya, %33'ünün yeşile, yalnızca %2'sinin maviye duyarlı olduğunu söyler. İki kaynağın ortak ve önemli noktası: mavi koniler çok azdır.

Parlaklık ve renklilik gösterimi

Rengi 1B parlaklık ve 2B renklilik (chrominance) cinsinden kodlamanın pek çok yolu vardır. Renklilik genellikle ton (hue) ve doygunluk (saturation) ile verilir. Belirli bir parlaklık değeri, renk küpünde parlaklığın sabit olduğu bir düzlem tanımlar. Bu düzlemdeki bir nokta gridir. Bir rengin doygunluğu, düzlemde o rengin gri noktaya uzaklığıdır. Ton ise aynı düzlemde kırmızıdan ölçülen açısal sapmadır.

RGB modeli

Renkli görüntüler üç yoğunluk haritasından oluşur. Her piksel üç elemanlı bir vektördür ve her renk 3B vektör uzayında bir noktaya karşılık gelir.

SiyahKırmızıYeşil MaviSarıMacenta CamgöbeğiBeyaz gri çizgi
Renk(R, G, B)
Siyah(0, 0, 0)
Kırmızı(255, 0, 0)
Yeşil(0, 255, 0)
Mavi(0, 0, 255)
Sarı(255, 255, 0)
Macenta(255, 0, 255)
Camgöbeği(0, 255, 255)
Beyaz(255, 255, 255)

Toplamsal (ışık, RGB)

R+G = sarı, G+B = camgöbeği, R+B = macenta, hepsi = beyaz.

Çıkarmalı (mürekkep, CMY)

C+M = mavi, C+Y = yeşil, M+Y = kırmızı, hepsi = siyah (kuramsal).

RGB'den gri tona

İşlemeyi kolaylaştırmak için bazen her pikselde tek bir değer, yani yoğunluk isteriz:

$$i = 0.30\,r + 0.59\,g + 0.11\,b$$

MATLAB'deki rgb2gray aynı oranları kullanır: 0.2989, 0.5870, 0.1140.

HSV modeli

Farklı işler için farklı modeller vardır: renk analizi için HSV, baskı için CMYK, standart olarak CIE, TV yayını için YUV. Genellikle RGB ile aralarında dönüşüm yapılabilir; işe uygun olanı seçmek gerekir. HSV ışığa değil renge dayanır ve bir koni (altıgen koni) olarak gösterilir: koninin ucu siyah, tepesi ortası beyaz, kenarları canlı renkler olan bir renk çarkıdır.

BileşenAnlamıGeometride
Ton (Hue, H)Rengin genel türü. Algılanan baskın dalga boyuyla belirlenen “saf rengin” adıdır.Dikey eksen etrafındaki açı. Kırmızı 0°, sarı 60°, yeşil 120°, camgöbeği 180°, mavi 240°, macenta 300°. Ana renkler arası 120°, ikincil renkler ana renklerden 60° uzakta.
Doygunluk (S)Saf rengin beyaz ışıkla ne kadar seyreltildiği: canlılık/donukluk, tonun saflığı.Eksenden uzaklık (0 = gri)
Değer (Value, V)Ne kadar parlak veya koyu olduğu: siyahtan parlak beyaza.Eksen boyunca yükseklik

RGB değerleri $[0,1]$ aralığına normalize edilmiş, $\max = \max(R,G,B)$, $\min = \min(R,G,B)$, $\Delta = \max - \min$ olsun:

$$V = \max, \qquad S = \begin{cases} \Delta / \max & \max \ne 0 \\ 0 & \max = 0 \end{cases}, \qquad H = 60^\circ \times \begin{cases} \dfrac{G-B}{\Delta} \bmod 6 & \max = R \\[4pt] \dfrac{B-R}{\Delta} + 2 & \max = G \\[4pt] \dfrac{R-G}{\Delta} + 4 & \max = B \end{cases}$$

RGB ile HSV arasındaki ilişki doğrusal değildir (slaytta “non-linear distortion”).

Kitaptan ek: HSI (G&W 6.2)

Ders kitabı HSV yerine HSI modelini kullanır:

$$I = \frac{R+G+B}{3}, \qquad S = 1 - \frac{3\min(R,G,B)}{R+G+B}, \qquad H = \begin{cases} \theta & B \le G \\ 360^\circ - \theta & B \gt G \end{cases}$$ $$\theta = \cos^{-1}\left\{ \frac{\tfrac12\left[(R-G) + (R-B)\right]}{\left[(R-G)^2 + (R-B)(G-B)\right]^{1/2}} \right\}$$

CMY ve CMYK

$$\begin{bmatrix} C \\ M \\ Y \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} - \begin{bmatrix} R \\ G \\ B \end{bmatrix}$$

Gerçek mürekkepler daha karmaşıktır, düzgün bir siyah gerektirir ve bu dönüşümü biraz zorlaştırır. Yaygın bir CMYK dönüşümü: $K = \min(C,M,Y)$, $C' = (C-K)/(1-K)$ (M ve Y için benzer).

Slayt hatası

CMYK slaytında karışımlar “M+Y=R, C+Y=G, M+Y=B” diye yazılmış. Üçüncüsü C+M=B olmalı. Sonraki slayttaki şekilde de “Cyan + Magenta = Blue” yazar.

Aynı rengin farklı eksen takımlarında farklı koordinatları vardır. Örneğin turuncu RGB'de (255, 165, 0), CMY'de (0, 90, 255)'tir.

YUV, YIQ ve YCbCr

YUV, bir parlaklık (luminance) bileşeni (Y) ve iki renklilik bileşeni (U, V) içeren her modelin genel adıdır. YIQ aynı fikrin NTSC'deki karşılığıdır, Y′CbCr ise YUV'nin özel bir örneğidir.

YUV ile RGB doğrusal denklemlerle ilişkilidir. Y'nin ağırlıkları gri ton dönüşümündekiyle aynıdır:

$$\begin{bmatrix} Y \\ U \\ V \end{bmatrix} = \begin{bmatrix} 0.30 & 0.59 & 0.11 \\ -0.17 & -0.33 & 0.50 \\ 0.50 & -0.42 & -0.08 \end{bmatrix} \begin{bmatrix} R \\ G \\ B \end{bmatrix}$$
Not

Slayttaki U, V katsayıları aslında YCbCr'deki Cb, Cr katsayılarıdır (−0.169, −0.331, 0.5 / 0.5, −0.419, −0.081). Klasik PAL YUV'de $U = 0.492(B - Y)$, $V = 0.877(R - Y)$'dir. Sınavda slayttaki matrisi kullanın. Renkliliğin daha düşük çözünürlükte saklanması (ör. 4:2:0 alt örnekleme) JPEG ve MPEG'in de temelidir.

Hangi model ne zaman?

AmaçModelNeden
Ekranda göstermeRGBDaha çok renk üretebilecek ana renkler (toplamsal)
BaskıCMY(K)Mürekkepler çıkarmalı çalışır
Renk farklarının analiziHSV / HSITon, doygunluk ve parlaklık ayrık; insan algısına yakın
İletim ve saklamaYIQ / YUV / YCbCrDaha az fazlalık: parlaklık ayrı, renklilik sıkıştırılabilir
Etkileşimli

Renk modeli dönüştürücü

Renk çarkında açı = ton (H), merkezden uzaklık = doygunluk (S); çark, V = 1 dilimidir. Renk örneğinin altındaki iki kutu: basit ortalama ve ağırlıklı (0.30/0.59/0.11) gri değer. Mavi renklerde bu iki değer arasındaki farka dikkat edin.

HSV = rgb2hsv(RGB);     RGB = hsv2rgb(HSV);
YCC = rgb2ycbcr(RGB);   YIQ = rgb2ntsc(RGB);
G   = rgb2gray(RGB);    CMY = imcomplement(RGB);    % 1 - RGB (double) / 255 - RGB (uint8)

2.10Geometrik dönüşümler

Filtreler ve nokta işlemleri yoğunluğu değiştirir, piksellerin konumu ve geometri aynı kalır. Geometrik işlemler ise görüntünün geometrisini değiştirir: öteleme, döndürme, ölçekleme… Uygulamalar: görüntüyü veya pencereyi istenen boyuta büyütmek; bilgisayar grafiğinde dokuları bükerek yüzeylere giydirmek; görüntü çakıştırma ve geometrik düzeltme.

Tanım

Geometrik işlem, $I$ görüntüsünü piksel koordinatlarını değiştirerek yeni bir $I'$ görüntüsüne dönüştürür: başlangıçta $(x,y)$'deki yoğunluk değeri $(x', y')$'ye taşınır. Örneğin öteleme $(x, y) \to (x + d_x,\ y + d_y)$.

Temel 2B dönüşümler

DönüşümDenklemlerAçıklama
Öteleme$x' = x + d_x,\quad y' = y + d_y$Noktayı öteleme miktarlarını ekleyerek yeni konuma taşır: $P' = P + T$. Nesnenin her noktası aynı miktarda ötelenir.
Ölçekleme$x' = s_x x,\quad y' = s_y y$Koordinatları ölçek çarpanlarıyla çarpar: $P' = SP$. $s_x = s_y$ ise düzgün, değilse düzgün olmayan ölçekleme. $s \gt 1$ büyütür, $s \lt 1$ küçültür, negatif değer yansıtır. Orijin etrafında yapıldığı için nesneyi de kaydırır.
Döndürme$x' = x\cos\theta - y\sin\theta$
$y' = x\sin\theta + y\cos\theta$
Orijin etrafında $\theta$ açısı kadar döndürür ($\theta \gt 0$: saat yönünün tersi). $P' = R(\theta)P$
Kayma (shear)x boyunca: $x' = x + b_x y,\ y' = y$
y boyunca: $x' = x,\ y' = y + b_y x$
Nesnenin şeklini değiştirir: dikdörtgen paralelkenar olur.
Döndürme formülünün çıkarımı

$P = (x, y)$ noktası orijinden $r$ uzaklıkta, x ekseniyle $\phi$ açısı yapsın: $x = r\cos\phi$, $y = r\sin\phi$. $\theta$ kadar döndürülünce:

$$x' = r\cos(\phi + \theta) = r\cos\phi\cos\theta - r\sin\phi\sin\theta = x\cos\theta - y\sin\theta$$ $$y' = r\sin(\phi + \theta) = r\cos\phi\sin\theta + r\sin\phi\cos\theta = x\sin\theta + y\cos\theta$$

Sayısal (slayttaki ev şekli): $(5, 2)$ noktası $45^\circ$ döndürülürse $x' = (5-2)\cdot 0.7071 = 2.12$, $y' = (5+2)\cdot 0.7071 = 4.95$. $(9,2)$ noktası $(4.95,\ 7.78)$ olur.

Homojen koordinatlar

Öteleme bir toplamadır, diğerleri ise çarpma. Hepsini tek tip bir matris çarpımı olarak yazmak için bir koordinat eklenir:

$$(x, y) \ \to\ (x_h, y_h, w) = (xw,\ yw,\ w), \qquad x = \frac{x_h}{w},\ \ y = \frac{y_h}{w}$$

$(x,y)$'nin homojen koordinatlarda birden çok gösterimi vardır: $w=1$ için $(x,y,1)$, $w=2$ için $(2x, 2y, 2)$… Bu noktaların hepsi homojen koordinat uzayında orijinden geçen bir doğru (izdüşümsel doğru) üzerindedir. Genellikle $w = 1$ alınır.

$$T = \begin{bmatrix} 1 & 0 & d_x \\ 0 & 1 & d_y \\ 0 & 0 & 1 \end{bmatrix} \quad S = \begin{bmatrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{bmatrix} \quad R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \quad Sh_x = \begin{bmatrix} 1 & b_x & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$$

Ardışık dönüşümler:

Dönüşümlerin birleştirilmesi

Bir dizi dönüşümün matrisleri tek bir dönüşüm matrisinde birleştirilebilir: $P' = M_n \cdots M_2 M_1 P$. En sağdaki matris önce uygulanır.

Örnek: bir nokta etrafında döndürme

Nesneyi $P_1$ noktası etrafında ölçekleyip döndürmek ve $P_2$'ye taşımak için: (1) $P_1$'i orijine ötele, (2) ölçekle ve döndür, (3) $P_2$'ye ötele:

$$M = T(P_2)\; R(\theta)\; S(s)\; T(-P_1)$$

Merkez etrafında döndürme ($P_1 = P_2 = c$): $M = T(c)\,R(\theta)\,T(-c)$.

Önemli: sıra korunmalı

Matris çarpımı değişmeli değildir: öteleme + döndürme ≠ döndürme + öteleme.

orijin P (orijinal) T·R·P: önce döndür, sonra ötele R·T·P: önce ötele, sonra döndür
Şekil 2.2 Aynı iki dönüşüm farklı sırayla uygulanınca farklı sonuç verir. $R$: orijin etrafında 90°, $T$: x yönünde +6 birim.

Genel dönüşüm matrisi

$$\begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} \qquad \Rightarrow \qquad \begin{aligned} x' &= a_{11}x + a_{12}y + a_{13} \\ y' &= a_{21}x + a_{22}y + a_{23} \end{aligned}$$

Sol üstteki $2\times 2$ blok döndürme, ölçekleme ve kaymayı; $a_{13}, a_{23}$ ötelemeyi taşır. Bir dizi dönüşümü tek matrisle göstermek daha verimlidir: kaç dönüşüm birleştirilmiş olursa olsun nokta başına yalnızca 4 çarpma ve 4 toplama gerekir.

Dönüşüm hiyerarşisi

TürİçerdiğiParametreKorunanKorunmayan
Rijit (Öklid)öteleme + döndürme3uzunluklar, açılarkonum, yönelim
Benzerlik+ düzgün ölçekleme4açılar (şekil)uzunluklar
Afin+ düzgün olmayan ölçekleme, kayma6paralellik, doğrular, doğru üzerindeki uzaklık oranlarıuzunluklar, açılar
İzdüşümsel (projective)+ perspektif8doğrular (doğrusallık)paralellik

Görüntülerde uygulama: ters eşleme ve interpolasyon

Görüntü koordinatları yalnızca ayrık değerler alabildiği için bazı dönüşümler tamsayı olmayan $(x', y')$ verir. Çözüm komşu değerlerden interpolasyon yapmaktır.

İleri eşleme

Her giriş pikselini $(x', y') = M(x,y)$ konumuna “atmak”. Bazı çıkış piksellerine hiç değer düşmez (delikler), bazılarına birden fazla değer düşer.

Ters eşleme (tercih edilen)

Her çıkış pikseli için $(x, y) = M^{-1}(x', y')$ ile kaynağa gidilir ve oradaki değer interpolasyonla okunur. Her çıkış pikseli tam bir değer alır. MATLAB'deki imwarp böyle çalışır.

Çevirme ve 90° döndürme interpolasyon gerektirmez. Temel fikir, mevcut adres yerine dönüştürülmüş piksel adresine bakmaktır (koordinatlar $[0,1]$ aralığına normalize edilmiş, y yukarı):

İşlem$(x, y)$ konumundaki çıkış için bakılacak giriş adresi
Baş aşağı çevirme$(x,\ 1 - y)$
Yatay çevirme$(1 - x,\ y)$
90° saat yönünün tersine döndürme$(y,\ 1 - x)$
Etkileşimli

Afin dönüşüm laboratuvarı (ters eşleme)

İnterpolasyon
Dönüşüm merkezi
 
Ekran koordinatları: x sağa, y yukarı (matematik kuralı). θ > 0 saat yönünün tersidir.
Birleşik matris $M = T(c + d)\,R(\theta)\,Sh_x\,S\,T(-c)$

Doğrusal olmayan bükmeler

Görüntü bükme (warping): bir fonksiyonla görüntünün başka bir yerindeki hangi pikselin okunacağı seçilir, ör. $x \leftarrow x + y \sin(\pi x)$. Aşağıdaki üç dönüşüm ters eşleme olarak verilmiştir: $(x', y')$ çıkış konumu, $(x,y)$ okunacak kaynak konumdur. Merkez $(x_c, y_c)$, $d_x = x' - x_c$, $d_y = y' - y_c$, $r = \sqrt{d_x^2 + d_y^2}$.

BükmeTers eşlemeParametreler
Twirl (girdap)$\beta = \operatorname{atan2}(d_y, d_x) + \alpha \dfrac{r_{\max} - r}{r_{\max}}$
$r \le r_{\max}$ ise $x = x_c + r\cos\beta,\ y = y_c + r\sin\beta$; değilse $x = x',\ y = y'$
Merkezde $\alpha$ kadar döndürür, $r$ arttıkça dönme azalır, $r_{\max}$ dışında görüntü değişmez.
Ripple (dalgalanma)$x = x' + a_x \sin\!\left(\dfrac{2\pi y'}{\tau_x}\right),\quad y = y' + a_y \sin\!\left(\dfrac{2\pi x'}{\tau_y}\right)$Hem x hem y yönünde dalga biçimli kayma. Slaytta (piksel): $\tau_x = 120$, $\tau_y = 250$, $a_x = 10$, $a_y = 15$.
Spherical (küresel)$z = \sqrt{r_{\max}^2 - r^2}$, $\beta_x = \left(1 - \tfrac{1}{\rho}\right)\sin^{-1}\!\dfrac{d_x}{\sqrt{d_x^2 + z^2}}$ ($\beta_y$ benzer)
$r \le r_{\max}$ ise $x = x' - z\tan\beta_x,\ y = y' - z\tan\beta_y$
Görüntünün üzerine konmuş bir mercekten bakmayı taklit eder. $\rho$: kırılma indisi (ör. 1.8), $r_{\max}$: mercek yarıçapı (ör. görüntü genişliğinin yarısı).
Etkileşimli

Twirl, ripple, spherical

Bükme
Giriş (ızgara eklenmiş)
Bükülmüş çıkış
J = imrotate(I, 30, 'bilinear', 'crop');   % pozitif açı = saat yönünün tersi
J = fliplr(I);  J = flipud(I);  J = rot90(I);  % interpolasyonsuz çevirme/döndürme
A = [cosd(30) -sind(30) 0; sind(30) cosd(30) 0; 0 0 1];
tform = affinetform2d(A);                     % R2022b ve sonrası; sütun vektörü kuralı
J = imwarp(I, tform, 'cubic');                % ters eşleme + interpolasyon
MATLAB sürümü

Eski sürümlerdeki affine2d satır vektörü kuralını kullanır: [x y 1] = [u v 1]*T. Bu yüzden oraya buradaki matrisin transpozu (A') verilir. affinetform2d ise ders notlarındaki $P' = AP$ kuralını kullanır.

2.11Haftanın özeti ve kendini test et

Örnekleme / nicemleme

Koordinatlar / genlik. $b = MNk$. Az seviye: yanlış konturlama.

Nyquist

$f_s \gt 2f_{\max}$; piksel ≤ en küçük periyot / 2. Aksi halde örtüşme: $f_a = |f - kf_s|$.

İnterpolasyon

NN: 1 komşu. Çift doğrusal: 4. Çift kübik: 16 komşu.

Uzaklıklar

$D_e = \sqrt{\Delta x^2 + \Delta y^2}$, $D_4 = |\Delta x| + |\Delta y|$, $D_8 = \max$. $D_8 \le D_e \le D_4$.

Bitişiklik

4, 8, m. m: köşegen yalnızca ortak 4-komşu $V$'de değilse.

Renk

Gri $= 0.30R + 0.59G + 0.11B$. CMY $= 1 - $RGB. HSV: H açı, S saflık, V parlaklık.

Geometri

Homojen koordinat, 3×3 matris. En sağdaki önce uygulanır. Rijit 3, benzerlik 4, afin 6, izdüşümsel 8 parametre.

Görüntüde uygulama

Ters eşleme $M^{-1}$ ve interpolasyon.

Görüntüdeki en ince ayrıntının periyodu 0.5 mm. Ayrıntı kaybolmaması için piksel boyutu en fazla ne olmalı?

Periyodun yarısı: 0.25 mm. Başka bir deyişle mm başına en az 4 örnek.

60 Hz'lik bir sinüs 100 Hz ile örnekleniyor. Hangi frekansta görünür?

$f_s = 100 \lt 2 \cdot 60 = 120$, yani örtüşme olur. $k = \operatorname{round}(0.6) = 1$, $f_a = |60 - 100| = 40$ Hz.

512×512, 8 bitlik bir görüntü 2 kat alt örneklenip 3 bite nicemleniyor. Depolama ne kadar azalır?

Önce: $512^2 \cdot 8 = 2\,097\,152$ bit = 262 144 bayt. Sonra: $256^2 \cdot 3 = 196\,608$ bit = 24 576 bayt. Oran ≈ 1/10.7.

p = (1,1) ve q = (4,5) için De, D4, D8?

$\Delta x = 3$, $\Delta y = 4$: $D_e = 5$, $D_4 = 7$, $D_8 = 4$.

Dört komşu 50, 100 (üst satır), 150, 200 (alt satır); d = 0.5, d' = 0.25 için çift doğrusal değer nedir?

Üst: $50 + 0.5\cdot50 = 75$. Alt: $150 + 0.5 \cdot 50 = 175$. Dikey: $75 + 0.25 \cdot 100 = \mathbf{100}$.

(3, 1) noktası orijin etrafında 90° saat yönünün tersine döndürülürse?

$x' = 3\cdot 0 - 1 \cdot 1 = -1$, $y' = 3 \cdot 1 + 1 \cdot 0 = 3$, sonuç $(-1, 3)$.

(2, 2) noktası etrafında 90° döndüren birleşik matrisi yazın.
$$M = T(2,2)\,R(90^\circ)\,T(-2,-2) = \begin{bmatrix} 1&0&2\\0&1&2\\0&0&1 \end{bmatrix}\begin{bmatrix} 0&-1&0\\1&0&0\\0&0&1 \end{bmatrix}\begin{bmatrix} 1&0&-2\\0&1&-2\\0&0&1 \end{bmatrix} = \begin{bmatrix} 0&-1&4\\1&0&0\\0&0&1 \end{bmatrix}$$

Kontrol: (2,2) noktası $(0\cdot2 - 2 + 4,\ 2 + 0) = (2,2)$'ye gider, yani sabit kalır.

RGB = (255, 128, 0) için CMY, ağırlıklı gri değer ve ton (H)?

CMY = (0, 127, 255) (8 bit) veya (0, 0.498, 1). Gri $= 0.30\cdot255 + 0.59\cdot128 + 0.11\cdot0 \approx 152$. $\max = R$, $\Delta = 1$: $H = 60^\circ \cdot (0.502 - 0)/1 \approx 30^\circ$ (turuncu).

Afin dönüşüm kaç parametrelidir, neyi korur? Kaç nokta çiftiyle belirlenir?

6 parametre. Doğruları, paralelliği ve doğru üzerindeki uzaklık oranlarını korur; uzunlukları ve açıları korumaz. 3 nokta çifti (6 denklem) yeter.

Görüntü döndürürken neden ileri değil ters eşleme kullanılır?

İleri eşlemede bazı çıkış piksellerine hiç değer düşmez (delikler), bazılarına birden fazla değer düşer. Ters eşlemede her çıkış pikseli için kaynakta bir konum hesaplanıp interpolasyonla değer okunur, böylece her piksel tam bir değer alır.

m-bitişiklik neden tanımlanmıştır?

8-bitişiklikte iki piksel arasında birden fazla yol olabilir (üçgen bağlantılar). Bu belirsizlik bölge/sınır tanımlarını ve yol uzunluğu hesaplarını karıştırır. m-bitişiklik, 4-bağlantı varken köşegen bağlantıyı kullanmayarak bu belirsizliği giderir.