图象DCT变换的MATLAB实现_精品文档.doc

上传人:b****2 文档编号:1200532 上传时间:2022-10-18 格式:DOC 页数:2 大小:26KB
下载 相关 举报
图象DCT变换的MATLAB实现_精品文档.doc_第1页
第1页 / 共2页
图象DCT变换的MATLAB实现_精品文档.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

图象DCT变换的MATLAB实现_精品文档.doc

《图象DCT变换的MATLAB实现_精品文档.doc》由会员分享,可在线阅读,更多相关《图象DCT变换的MATLAB实现_精品文档.doc(2页珍藏版)》请在冰豆网上搜索。

图象DCT变换的MATLAB实现_精品文档.doc

globalgmainData;

[fname,pname]=uigetfile('*.jpg','打开文件');

iffname==0

   return;

end

[Data,map]=imread(fname);%读取图像数据

%new=rgb2gray(Data);

%imwrite(new,'new.bmp','bmp')

%Data=im2bw(Data,map,0.6);%im2bw转为二进制阈值0.6

%Data=+Data;%逻辑格式转为浮点格式

Data=rgb2gray(Data);

subplot(1,2,1);%准备显示两幅图像

imshow(Data);

functionDCTcode;

globalData;%全局变量,用于共享图像数据

[m,n]=size(Data);

fid=fopen('dct.bin','w+');%创建dct.bin用存储DCT和BTC混合编码后的二进制文件。

%补0使尺寸为4的整数倍以便分块

m1=4*ceil(m/4);n1=4*ceil(n/4);

Datatemp=zeros(m1,n1);

Datatemp(1:

m,1:

n)=Data;

%

fwrite(fid,m1,'long');fwrite(fid,n1,'long'); %在文件中记录图像大小

block=zeros(4,4);   %4X4大小的子带 

forj=1:

4:

n

   fori=1:

4:

m

       fort=0:

1:

           forp=0:

1:

3

               block(1+t,1+p)=Datatemp(i+t,j+p);%取出4X4数据块

           end

       end  

     %对变换后数据进编码后存储或发送,只取其中的2X2数据     

       DctBlock=dct2(block);    

       %存储(发送)编码文件

       fwrite(fid,DctBlock(1,1),'bit12');%直流分量,用12bit量化

       fwrite(fid,DctBlock(1,2),'bit9');%用9bit量化非直流分量

       fwrite(fid,DctBlock(2,1),'bit9');

       fwrite(fid,DctBlock(2,2),'bit9');        

   end

end

fclose(fid);

functionIDctcode;

fid=fopen('dct.bin','r');

m=fread(fid,1,'long');n=fread(fid,1,'long');

data=zeros(m,n);%用于存放图像数据

temp=zeros(4,4);

block=zeros(4,4);

%读取方块数据

forj=1:

4:

n

   fori=1:

4:

m        

       block(1,1)=fread(fid,1,'bit12');

       block(1,2)=fread(fid,1,'bit9');

       block(2,1)=fread(fid,1,'bit9');

       block(2,2)=fread(fid,1,'bit9');

       temp=idct2(block);

       fort=0:

1:

3

           forp=0:

1:

3

               Data(i+t,j+p)=temp(1+t,1+p);

           end

       end

   end

end

data=uint8(Data);

subplot(1,2,2);

imshow(data);%显示图像

fclose(fid);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1