1 Star 0 Fork 0

tianyu/DCT_threePoints

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
hidedctadv.m 1.38 KB
一键复制 编辑 原始数据 按行查看 历史
S_Braylon 提交于 2019-10-26 14:46 . DCT_threePoints
function [count,msg,result]=hidedctadv(image,imagegoal,msg,key,alpha)
frr=fopen(msg,'r') ;
[msg,count]=fread(frr,'ubit1');
fclose(frr);
data0=imread(image);
data0=double(data0)/255;
data=data0(:,:,1);
T =dctmtx(8);
DCTrgb=blkproc(data,[8 8],'P1*x*P2',T,T');
[row,col]=size(DCTrgb);
row=floor(row/8);
col=floor(col/8);
a=zeros([row col]);
[k1,k2]=randinterval(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);
result=data0;
result(:,:,1)=data;
imwrite(result,imagegoal);
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Matlab
1
https://gitee.com/S_Braylon/DCT_threePoints.git
git@gitee.com:S_Braylon/DCT_threePoints.git
S_Braylon
DCT_threePoints
DCT_threePoints
master

搜索帮助