資源簡介
基于matlab平臺,采用DCT算法壓縮視頻。包括視頻分解成幀,DCT算法壓縮,幀合成視頻,以及綜合的視頻壓縮M文件,可直接仿真。有相應的圖片,以及壓縮前后的視頻,還有原理word報告。
代碼片段和文件信息
clear?all;
PI=3.1415926;
M=imread(‘image1.bmp‘);%需要處理的圖像
mask_num=8;%%這里定義壓縮的比率,1~8之間
A=double(M);
trueImage=A;%待壓縮的原圖象
Cnum=7;%為壓縮時保留的系數的個數
I=trueImage/256;
r=I(::1);%紅
g=I(::2);%綠
b=I(::3);%藍
Myfigure1=figure(1);
subplot(121);imshow(mat2gray(trueImage));title(‘原始圖象‘);
%對圖象進行歸一化
%以下為對圖象進行DCT變換
%得到圖象的DCT系數矩陣及DCT系數方差矩陣
dctm=dctmtx(8);
imageDCTr=blkproc(r[8?8]‘P1*x*P2‘dctmdctm‘);
DCTvarr=im2col(imageDCTr[8?8]‘distinct‘);
n=size(DCTvarr1);
DCTvarr=(sum(DCTvarr.*DCTvarr)-(sum(DCTvarr)/n).^2)/n;
[dumorder]=sort(DCTvarr);
%以下為顯示系數圖象
%1表示保留的系數表示丟棄的系數
Cnum=64-Cnum;
mask=zeros(88);
for?i=1:mask_num
????for?j=1:mask_num+1-i
????????mask(ij)=1;
????end
end
im8x8=zeros(99);
im8x8(1:81:8)=mask;
im128x128=kron(im8x8(1:81:8)ones(16));
figure(2);subplot(121);imshow(im128x128);title(‘DCT?系數‘);
dctm=dctmtx(8);
newImager=blkproc(imageDCTr[8?8]‘P1*(x.*P2)*P3‘dctm.‘mask(1:81:8)dctm);
newImager=newImager*256;
newImager=uint8(newImager);
imageDCTg=blkproc(g[8?8]‘P1*x*P2‘dctmdctm‘);
DCTvarg=im2col(imageDCTg[8?8]‘distinct‘);
n=size(DCTvarg1);
DCTvarg=(sum(DCTvarg.*DCTvarg)-(sum(DCTvarg)/n).^2)/n;
[dumorder]=sort(DCTvarg);
%以下為顯示系數圖象
%1表示保留的系數表示丟棄的系數
Cnum=64-Cnum;
mask=zeros(88);
for?i=1:mask_num
????for?j=1:mask_num+1-i
????????mask(ij)=1;
????end
end
im8x8=zeros(99);
im8x8(1:81:8)=mask;
im128x128=kron(im8x8(1:81:8)ones(16));
dctm=dctmtx(8);
newImageg=blkproc(imageDCTg[8?8]‘P1*(x.*P2)*P3‘dctm.‘mask(1:81:8)dctm);
newImageg=newImageg*256;
newImageg=uint8(newImageg);
imageDCTb=blkproc(b[8?8]‘P1*x*P2‘dctmdctm‘);
DCTvarb=im2col(imageDCTb[8?8]‘distinct‘);
n=size(DCTvarb1);
DCTvarb=(sum(DCTvarb.*DCTvarb)-(sum(DCTvarb)/n).^2)/n;
[dumorder]=sort(DCTvarb);
%以下為顯示系數圖象
%1表示保留的系數表示丟棄的系數
Cnum=64-Cnum;
mask=zeros(88);
for?i=1:mask_num
????for?j=1:mask_num+1-i
????????mask(ij)=1;
????end
end
im8x8=zeros(99);
im8x8(1:81:8)=mask;
im128x128=kron(im8x8(1:81:8)ones(16));
dctm=dctmtx(8);
newImageb=blkproc(imageDCTb[8?8]‘P1*(x.*P2)*P3‘dctm.‘mask(1:81:8)dctm);
newImageb=newImageb*256;
newImageb=uint8(newImageb);
%以下為重構及顯示圖象
newImage=cat(3newImagernewImagegnewImageb);
figure(3);
imshow(newImage);title(‘重構圖象‘);
%以下為顯示誤差圖象
errImage=abs(trueImage-double(newImage));
figure(2);subplot(122);imshow(mat2gray(errImage));title(‘誤差圖象‘);
%計算均方根誤差?erms
e=double(trueImage)-double(newImage);
[mn]=size(e);
Erms=sqrt(sum(e(:).^2)/(m*n))
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????26270720??2007-03-27?15:11??基于DCT算法視頻壓縮\1.avi
?????文件????????2668??2014-01-06?05:08??基于DCT算法視頻壓縮\DCT算法.m
?????文件??????780464??2014-01-05?23:33??基于DCT算法視頻壓縮\new.avi
?????文件?????????277??2014-01-05?23:28??基于DCT算法視頻壓縮\分解.m
?????文件?????????265??2014-01-06?02:12??基于DCT算法視頻壓縮\合成.m
?????文件?????1182672??2014-01-22?11:06??基于DCT算法視頻壓縮\基于DCT算法的視頻壓縮實驗報告.docx
?????文件????????2374??2014-01-06?02:12??基于DCT算法視頻壓縮\綜合.m
?????文件???????10261??2014-01-06?01:12??基于DCT算法視頻壓縮\images\new1.jpg
?????文件????????9778??2014-01-06?01:12??基于DCT算法視頻壓縮\images\new10.jpg
?????文件????????9813??2014-01-06?01:17??基于DCT算法視頻壓縮\images\new100.jpg
?????文件???????10032??2014-01-06?01:17??基于DCT算法視頻壓縮\images\new101.jpg
?????文件???????10277??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new102.jpg
?????文件???????10389??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new103.jpg
?????文件???????10430??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new104.jpg
?????文件???????10373??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new105.jpg
?????文件???????10324??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new106.jpg
?????文件???????10330??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new107.jpg
?????文件???????10326??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new108.jpg
?????文件???????10299??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new109.jpg
?????文件????????9753??2014-01-06?01:12??基于DCT算法視頻壓縮\images\new11.jpg
?????文件???????10335??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new110.jpg
?????文件???????10308??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new111.jpg
?????文件???????10324??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new112.jpg
?????文件???????10135??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new113.jpg
?????文件???????10043??2014-01-06?01:18??基于DCT算法視頻壓縮\images\new114.jpg
?????文件????????9635??2014-01-06?01:12??基于DCT算法視頻壓縮\images\new12.jpg
?????文件????????9508??2014-01-06?01:12??基于DCT算法視頻壓縮\images\new13.jpg
?????文件????????9711??2014-01-06?01:12??基于DCT算法視頻壓縮\images\new14.jpg
?????文件????????9770??2014-01-06?01:13??基于DCT算法視頻壓縮\images\new15.jpg
?????文件????????9686??2014-01-06?01:13??基于DCT算法視頻壓縮\images\new16.jpg
?????文件????????9741??2014-01-06?01:13??基于DCT算法視頻壓縮\images\new17.jpg
............此處省略92個文件信息
- 上一篇:隨機共振的所有實例
- 下一篇:matlab實現的讀取視頻和音頻
評論
共有 條評論