|
Makale eklemek için kategori seçin
Arama |
|
En Popüler Makaleler -
En Çok Oy Alan Makaleler -
Son Makaleler
|
Yazar: Seyhan Agaoglu
Tarih: 04 Arl Cum, 2009 18:29
Gösterim 1302
Açıklama: Median Cut, Huffman, Görüntü Sıkıştırma, RGB
Kategori: Haberleşme Ana Bilim Dalı
Tip: Uygulama
Yazara ait makale sayısı: 4
Yazar tarafından gönderilen tüm makaleleri bul
|
|
Median Cut ve Huffman Uygulayarak Görüntü Sıkıştırma
|
İçerik
1 - Giriş 2 -
Median Cut 3 -
Uniform Kuantalama 4 -
Huffman Kodlama 5 -
Sıkıştırma Algoritmasının Gerçeklenmesi 6 -
Simülasyon Sonuçları (1) 7 -
Simülasyon Sonuçları (2) 8 -
Ek (Programların kaynak kodları -1) 9 -
Ek (Programların kaynak kodları -2) 10 -
Kaynakça |
Ek (Programların kaynak kodları -2)
| Matlab: |
function Y=mediancut(I,level);
% Median Cut renk kuantalayici
% I, uint8 grilik seviyesi bir goruntu veya RGB renki bir goruntunun
% tek bir renk katmani.
% level, goruntuyu ifade etmek istediginiz renk sayisi
% Y, kuantalanmis uint8 goruntu
I=double(I);
his=zeros(1,256);
for i=1:size(I,1)
for j=1:size(I,2)
k=I(i,j);
his(k+1)=his(k+1)+1;
end
end
y=1;
for c=1:256
if his(c)==0
continue
end
for x=1:his(c)
img(y)=c-1;
y=y+1;
end
end
n=size(img,2);
a=mod(n,level);
s=(n-a)/level;
m=1;
if a~=0
for i=1:a
for j=1:s+1
sub(j)=img(m+j-1);
end
m=m+s+1;
maks=max(sub);
mini=min(sub);
ort=round(sum(sub)/(s+1));
for z=1:size(I,1)
for t=1:size(I,2)
if (I(z,t)<= maks) & (I(z,t)>=mini)
I(z,t)=ort;
end
end
end
end
end
for i=a+1:level
for j=1:s
subb(j)=img(m+j-1);
end
m=m+s;
maks=max(subb);
mini=min(subb);
ort=round(sum(subb)/(s));
for z=1:size(I,1)
for t=1:size(I,2)
if (I(z,t)<= maks) & (I(z,t)>=mini)
I(z,t)=ort;
end
end
end
end
Y=uint8(I);
% end of function
|
| Matlab: |
function Y = glevel(I,n)
% Goruntunun grilik seviyesini degistiren M-Fonksiyonu
% Uniform kuantalama
% Degisken tanimlanmasi :
% I -- Grilik seviyesini degistirmek istedigimiz goruntu. Gorunutuyu
% unsigned 8-bit interger(uint8) sinifi kabul ediyoruz.
% n -- Goruntunun istenilen grilik seviyesi. 2,4,8,16...128,256 gibi 2'nin
% tam kuvvetleri olmalı.
error(nargchk(2,3,nargin)) % giris parametrelerinin sayisi kontrol ediliyor.
i=int16(log2(n));
chk=double(i);
if ~(n==2^chk)| n==0 | n==1 % n degeri kontrol ediliyor.
error('Yanlis bir deger girdiniz. Lutfen 2 ile 256 arasında 2 nin tam kuvvetleri olan değerler giriniz');
else
% Lineer gray-scale renk haritasi oluturuluyor.
lartis=255/(n-1);
cmap=zeros(n,1);
for i=2:n
cmap(i)=cmap(i-1)+lartis;
end
cmap=round(cmap);
of = (n-1)/255; % grilik seviyesi olceklendirme faktoru [0,255]
% goruntu uzerinde lineer kombinasyonlu aritmetik islem yapiliyor.
% olceklendiriliyor
X=double(I);
Y=of.*X;
Y=uint8(Y);
% olceklendirilmis goruntu yeniden intensity goruntuye donusturuluyor.
for i=1:size(Y,1)
for j=1:size(Y,2)
Y(i,j)=cmap(Y(i,j)+1);
end
end
end
% End of function glevel
|
| Matlab: |
function [gamma] = psnr(x,y)
% Programin Amaci : 8-bit iki goruntu alir ve tepe isaret gurultu oranini
% hesaplar. x ve y ayni boyutlu 2D dizi veya vektor olmalidir.
% gamma = 10 log (255^2/MSE)
x=double(x);
y=double(y);
sx = size(x);
sy = size(y);
if sx == sy
dd = x(:) - y(:);
gg = (dd' * dd)/prod(sx);
rr = 255^2./gg;
gamma = 10 * log10(rr);
else
fprintf ('n Goruntulerin boyutlari ayni olmali.');
gamma = NaN;
end
% End of function glevel
|
| Matlab: |
function Newimg = histe(I)
% Program Adi : Goruntuye Histogram Esitleme uygulayan M-Fonksiyonu
%
% Degisken tanimlanmasi :
% I -- Histogram esitleme uygulayarak iyileştirmek istedigimiz goruntu.
% Gorunutuyu unsigned 8-bit interger(uint8) sinifi kabul ediyoruz.
error(nargchk(1,2,nargin)) % giris parametrelerinin sayisi kontrol ediliyor.
% histogram hesaplaniyor
hist=zeros(1,256);
if isa(I, 'uint8'),
I = double(I);
end
for i=1:size(I,1)
for j=1:size(I,2)
k=I(i,j);
hist(k+1)=hist(k+1)+1;
end
end
% toplam histogram hesaplaniyor
sum=0;
for i=0:255
sum=sum+hist(i+1);
sum_of_hist(i+1)=sum;
end
% giris goruntusu cikis goruntusune donusturulur
area = size(I,1)*size(I,2);
Glevel = 256;
for i=1:size(I,1)
for j=1:size(I,2)
k=I(i,j);
X(i,j)=(Glevel/area)*sum_of_hist(k+1);
end
end
Newimg=uint8(X);
% End of funtion histe
|
|
| Sayfa:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
|
| Kullanıcı Yorumları |
| Seyhan Agaoglu Tarih: 04 Arl Cum, 2009 18:29 Mesaj konusu [MAKALE] Median Cut ve Huffman Uygulayarak Görüntü Sıkıştırm |
|
| Makaleyi Güncelleyen Seyhan Agaoglu |
|
 |
| 1. sayfa (Toplam 0 sayfa) |
Sayfa: |
|
|
|
Bu kategoriye yeni makale gönderemezsiniz Bu kategorideki makalelerinizi düzenleyemezsiniz Bu kategorideki makalelerinizi silemezsiniz Bu makaleye yorum yapamazsınız Bu kategorideki makaleleri oylayamazsınız Bu kategorideki makalelerin onaylanması gerekmektedir Bu kategorideki düzenlenmiş makalelerin onaylanması gerekmektedir
|
|
|
|