MATLAB,求大虾,帮忙给我个图像dct变换和逆变换的算法呗。。具体的dct是怎么实现的?谢谢了。。。

 我来答
英雄创业精神奇
2012-11-08 · TA获得超过1601个赞
知道小有建树答主
回答量:1454
采纳率:0%
帮助的人:1422万
展开全部
不知道你的dct变换 是用在哪里 数字水印or 图像压缩??

%程序员:李鹏
%编写时间:2003.11.25%修改时间:2004.3.8
%函数功能:本函数用于DCT域的信息隐藏
function [count,msg,result]=hidedctadv1(image,imagegoal,msg,key,alpha) %按位读取秘密信息
frr=fopen(msg,'r');
[msg,count]=fread(frr,'ubit1');
fclose(frr); data0=imread(image); %将图象矩阵转为double型
data0=double(data0)/255; %取图象的一层做隐藏
data=data0(:,:,1); %对图象分块
T=dctmtx(8); %对分块图象做DCT变换
DCTrgb=blkproc(data,[8 8],'P1*x*P2',T,T'); DCTrgb0=DCTrgb; %产生随机的块选择,确定图像块的首地址
[row,col]=size(DCTrgb);
row=floor(row/8);
col=floor(col/8);
a=zeros([row col]);
[k1,k2]=randinterval1(a,count,key);
for i=1:count
k1(1,i)=(k1(1,i)-1)*8+1;
k2(1,i)=(k2(1,i)-1)*8+1;
end %信息嵌入
temp=0;
for i=1:count
if msg(i,1)==0
if DCTrgb(k1(i)+4,k2(i)+1)>DCTrgb(k1(i)+3,k2(i)+2)
temp=DCTrgb(k1(i)+4,k2(i)+1);
DCTrgb(k1(i)+4,k2(i)+1)=DCTrgb(k1(i)+3,k2(i)+2);
DCTrgb(k1(i)+3,k2(i)+2)=temp;
end
else
if DCTrgb(k1(i)+4,k2(i)+1)<DCTrgb(k1(i)+3,k2(i)+2)
temp=DCTrgb(k1(i)+4,k2(i)+1);
DCTrgb(k1(i)+4,k2(i)+1)=DCTrgb(k1(i)+3,k2(i)+2);
DCTrgb(k1(i)+3,k2(i)+2)=temp;
end
end
if DCTrgb(k1(i)+4,k2(i)+1)>DCTrgb(k1(i)+3,k2(i)+2)
DCTrgb(k1(i)+3,k2(i)+2)=DCTrgb(k1(i)+3,k2(i)+2)-alpha;%将原本小的系数调整得更小
else
DCTrgb(k1(i)+4,k2(i)+1)=DCTrgb(k1(i)+4,k2(i)+1)-alpha;
end
end %信息写回保存
DCTrgb1=DCTrgb;
data=blkproc(DCTrgb,[8 8],'P1*x*P2',T',T); r
esult=data0; result(:,:,1)=data;
imwrite(result,imagegoal);
更多追问追答
追问
图像压缩。
追答
下次再发你
雨落西界
2012-11-10 · TA获得超过297个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:97.3万
展开全部
我有求dct系数的程序 。。前天刚写的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式