Görüntü İşleme
 
Üye Girişi
E-mail:

Şifre:



 
Blog Arama Motoru
 
19 Mayıs 2012
Mustafa Kemal Atatürk
 
E-mail Aboneliği
Yeni yazılar yazıldığında e-mail adresinize bildirim gelmesini isterseniz aşağıdaki kutucuğa e-mail adresinizi girip 'Abone Ol'a tıklayabilirsiniz.

E-mail:

 
 
Affine Dönüşümü İle Öteleme, Döndürme Ve Ölçekleme
Affine Dönüşüm, Program Örneği
   Affine dönüşümü, koordinat dönüşümlerine dayalı 3 temel işlem olan öteleme(translation), döndürme(rotation) ve ölçekleme(scaling) işlemlerinin genel formudur.

İki Boyutlu Affine Dönüşümü
Affine Dönüşüm İşlemi
   Burada A 2x2, B 2x1 boyutlarında iki matristir:
Affine Dönüşüm İşlemi Açık İfade
   Dönüşümün genel ifadesi budur. İfadedeki A ve B matrislerinin elemanlarına farklı değerler veya ifadeler yerleştirilerek dönüşümün özel formları elde edilir.

Affine transform, ötelenmiş görüntü1) Öteleme  (Translation)
   Öteleme işlemi basit bir koordinat dönüşüm işlemidir. Affine dönüşüm ifadesindeki A matrisi birim matris olarak alındığında, x ve y koordinatları sırasıyla b1 ve b2 kadar ötelenir. Öteleme işlemi sonucunda taşmalar meydana gelir. Bu problemi gidermek için üç yöntem düşünülebilir.
 - Sınırlardan taşan pixeller gözardı edilebilir. Ancak bu şekilde görüntü kaybı meydana gelir.
 - Yeni görüntünün çizileceği çerçevenin boyutları öteleme miktarı ile doğru orantılı olarak arttırılabilir. Öteleme negatif yönlü yapılırsa bu yöntem işe yaramaz. Ayrıca görüntüde gereksiz boş alanlar oluşur.
 - Son ve en kullanışlı yöntem ise taşan her pixelin, (0,0) noktasından taşma miktarları kadar ileri(veya geri) bir konuma yerleştirilmesidir. Taşan pixellerin yeni koordinatları şöyle bulunabilir:
x'' = x' +- Genişlik  (sıfırın altına inilirse +, genişliğin üstüne çıkılırsa - kullanılır)
y'' = y' +- Yükseklik (sıfırın altına inilirse +, yüksekliğin üstüne çıkılırsa - kullanılır.)
   Yukarıdaki işlemlerin, yalnızca taşan pixellerin koordinatları üzerinde yapılması gerekir. Taşma kontrolüne gerek bırakılması istenmiyorsa yeni koordinatların sınır değerlere bölümlerinden kalanlar, asıl yeni x ve y koordinatları olarak kabul edilir:
x'' = x' % Genişlik
y'' = y' % Yükseklik
   İfadelerdeki x' ve y', öteleme sonucunda elde edilen yeni koordinatlardır. x'' ve y'', ise taşma kontrolünden geçirilmiş ve tümü x için [0-Genişlik), y için [0-Yükseklik) aralıklarına çekilmiş olan yeni koordinatlardır.

Affine transform, döndürülmüş görüntü2) Döndürme (Rotation)
   Dödürme işleminde A matrisi, iki boyutlu döndürme matrisidir. Aynı zamanda öteleme yapılması istenmiyorsa B matrisi 0(sıfır matrisi) alınır. Affine dönüşümü şu hale döner:
İki Boyutlu Döndürme Matrisi
x' = x*cos(teta) - y*sin(teta)
y' = x*sin(teta) + y*cos(teta)

   Dödürme işleminde x' ve y' değerleri yine genişlik ve yükseklik alt veya üst sınırlarından taşar. Bunu önlemek için yeni görüntünün boyutlarının, dönen görüntünün tümünü sığacak yeterlilikte olması sağlanmalıdır. Yeni boyutlar, teta=k*pi (k=1,2,3...) iken eski boyutlara eşit olur. teta açısının diğer değerleri için yeni boyutlar eski boyutlardan hep daha büyüktür.

   Görüntü, dönüşümün bu hali ile (0,0) noktası etrafında döndürülür. Farklı bir nokta etrafından döndürme yapılması istenirse önce bu noktanın merkezde(0,0) konumlanması için görüntü ötelenir. Daha sonra döndürme yapılır ve görüntü, merkeze ötelenen noktanın eski konumuna geri döndürülmesini sağlayacak şekilde tekrar ötelenir. Bu ardışık 3 işlem tek bir ifade ile gösterilebilir:
x' = (x-MerkezX)*cos(teta) - (y-MerkezY)*sin(teta) + MerkezX
y' = (x-MerkezX)*sin(teta) + (y-MerkezY)*cos(teta) + MerkezY

2.1) Yeni Genişlik Ve Yükseklik Değerlerinin Hesaplanması
   Görüntü, kendi merkezi(Genislik/2,Yukseklik/2) etrafında döndürüldüğünde, sınırlardan taşan en uç noktalar görüntünün köşe noktalarıdır. Köşe noktalarının yeni koordinatlarından yola çıkılarak yeni genişlik ve yükseklik değerleri belirlenebilir. Hangi köşelerden yola çıkılacağı, döndürme açısının bulunduğu aralığa bakılarak saptanır.

Köşeler   teta [0,90] aralığında iken yandaki kenardan en çok taşan, yani görüntüyü sınırlayan çerçeveye en uzak olan nokta 2. köşe üzerindeki noktadır. Bu noktanın yeni x koordinatı ile görüntünün genişliği arasındaki fark, taşma miktarını verir. 2. köşe üzerindeki noktanın taşma miktarı kadar, 4. köşe üzerindeki nokta da soldan taştığı için, bulunan taşma değeri 2 ile çarpılır ve eski genişlik değerine eklenir. Böylece resmin tümünü sığacak yeni bir genişlik değeri elde edilir. Yükseklik değeri de aynı mantıkla hesaplanır. Sürekli aynı şeyleri tekrar etmemek adına hızlıca diğer açı aralıkları için sınırlara en uzak noktaları ve bu noktaların koordinatlarını verelim.

 • [0,90]: Genişlik için köşe2, yükseklik için köşe3
 • (90,180]: Genişlik için köşe1, yükseklik için köşe2
 • (180,270]: Genişlik için köşe4, yükseklik için köşe1
 • (270,360]: Genişlik için köşe3, yükseklik için köşe4

Noktaların koordinatları (x,y):
 • Köşe 1: (0,0)
 • Köşe 2: (Genişlik,0)
 • Köşe 3: (Genişlik,Yükseklik)
 • Köşe 4: (0,Yükseklik)

Affine transform, ölçeklenmiş görüntü3) Ölçekleme (Scaling)
   Ölçekleme işlemi, affine dönüşümünde A matrisinin köşegen elemanlarına 0, diğer elemanlarına ölçek değerleri verilerek yapılır. a11 x koordinatını, a22 y koordinatını ölçekler. Aynı zamanda öteleme yapılması istenmiyorsa B matrisi 0(sıfır matrisi) alınır. Dönüşüm sadeleştirilerek yazıldığında aşağıdaki basit ifadeler elde edilir:
x' = x*a11
y' = y*a22


Affine transform, köşeleri kaydırılmış görüntüFarklı Değerler, Farklı Sonuçlar
   Dönüşümün genel formunun parametrelerine verilecek farklı değer veya ifadeler, doğal olarak farklı sonuçlar doğuracaktır. Örneğin B, 0 matrisi olsun. a11=1, a22=1, a12=0, a21=Y iken görüntüde köşe1 ve köşe4 sabit durur, köşe2 ve köşe3 Y kadar aşağı kayar. Başta bir dikdörtgen veya kare olan görüntü bir paralelkenara döner. Daha farklı değerler deneyerek değişik sonuçlar elde edebilirsiniz...

Koordinatların Tamsayıya Yuvarlanması Sorunu
   Dönüşüm esnasında pixellerin kaynak görüntü üzerindeki koordinatları kullanılarak hedef görüntüde bulunmaları gereken konum hesaplanır. Ancak hedef görüntü üzerinde aralarda hiç boyanmayan pixeller kalabilir. Bu sorun, ondalıklı koordinatların tamsayıya yuvarlanmasından kaynaklanır. Sorunu gidermek için tersten gidilmelidir; hedef üzerindeki pixellerin koordinatları kullanılarak, bu konumlara düşecek kaynak pixellerin koordinatları tespit edilmelidir. Bilgisayara 'Döndürülünce şu konuma yerleşmesi gereken pixelin, döndürülmeden önceki konumu ne olmalı?' sorusu sorulmalıdır. Yani bilinen x' ve y' koordinatlarından bilinmeyen x ve y koordinatlarına ulaşılmalıdır...

Harici Bağlantılar
 - Affine Transform
 - Affine Transformation
 - Transformation Matrix
 - Rotation Matrix
 - Translation
 - Online LaTeX Equation Editor
Yayınlanma Tarihi: 19 Mart 2011 Cumartesi - 21:35
Anahtar Kelimeler: görüntü işleme, geometrik işlemler, koordinat dönüşümleri, affine dönüşümü, affine transform, döndürme, rotation, öteleme, translation, ölçekleme, scaling

Onaylı yorum bulunmuyor.
Yorum/Görüş Bildir
Yorumları html kodu veya özel karakter kullanmadan, yazım kurallarına
dikkat ederek ve düzgün bir Türkçe kullanarak yazalım...
 
Atasoy Blog v3.0 © 2009-2012 Hüseyin Atasoy | Tema Tasarımı: Hüseyin Atasoy