Serkan Kaba

Karalama Defteri

Ayrık Kosinüs Dönüşümü

Posted by Serkan Kaba 1 Nisan 2007

Resimlere ayrık kosinüs dönüşümü (Discrete Cosine Transform) ile resimlerin kosinüs katsayılarını bulup bunlardan yüksek frekanslı olanların çoğunu atıp ters dönüşüm yaptıktan sonra nasıl resmin büyük miktarda korunduğuna örnek. Bu yöntem JPEG dosya biçiminde kullanılıyor.

Örnek kod parçası:
I = imread('/home/firari/Desktop/sandalye/gray.jpg');
I = im2double(I);T = dctmtx(8);
B = blkproc(I,[8 8],'P1*x*P2',T,T');
mask = [1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
B2 = blkproc(B,[8 8],'P1.*x',mask);
I2 = blkproc(B2,[8 8],'P1*x*P2',T',T);
diff=I-I2;

Burada oluşan I2 resmi sıkıştırılarak kaydedilecek resim, diff ise sıkıştırma sırasında oluşan kaybı ifade eden hata resmi.

Mask olarak koddaki matris verildiğinde oluşan I2 resmi.

dct1.jpg

Hata resmi (diff)

diff1.jpg

1 lerin sayısını azalttığımızda kayıp artıyor ve kalite düşüyor.

dct2.jpg diff2.jpg

Bir ödevde burada bitti bir daha ki ödevde görüşmek üzere🙂

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

 
%d blogcu bunu beğendi: