?? jpgcompress.m
字號:
function JPGCompress(s)
%對制定圖片進行jpeg壓縮編碼
A=imread(s);
fun=@DCT_Measure;
B=blkproc(A,[8,8],fun);%得到量化后的系數矩陣,與原始圖像尺寸相同,需要進一步處理
%將B分成8×8矩陣重新排列,并對直流系數做差分
n=length(B)/8; %對每個維度分成的塊數
%創建一個8×(8×n^2)的二維數組存放待編碼數據
C=zeros(8);%初始化為8×8的全0矩陣
for y=0:n-1
for x=0:n-1
T1=C(:,[end-7:end]);%取出上一組數據做差分
T2=B(1+8*x:8+8*x,1+8*y:8+8*y);
T2(1)=T2(1)-T1(1);% 直流系數做差分
C=[C,T2];
end
end
C=C(:,[9:end]);
%依次對每一塊編碼
JPGCode={''};%存儲編碼的元胞初始化為空的字符串
for a=0:n^2-1
T=Code_Huffman(C(:,[1+a*8:8+a*8]));
JPGCode=strcat(JPGCode,T);
end
%J=JPGCode;
sCode=cell2mat(JPGCode);%將元胞轉化為數組
Fid=fopen('JPGCode.txt','w');% 將壓縮碼保存到文本文件中
fprintf(Fid,'%s',sCode);
fclose(Fid);
%計算壓縮比和壓縮效率
[x y]=size(A);
b=x*y*8/length(sCode);
v=8/b;
disp('JPEG壓縮數據已保存至JPGCode.txt中!');
disp(['壓縮比為:',num2str(b),';壓縮效率:',num2str(v)]);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -