function [ count, msg, result] = hidedctadv_3point( image, imagegoal, msg, key, alpha,MD)
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) ;
rand('seed',key);
indk = randperm(row*col);
indk = indk(1:128);
[k1,k2] = ind2sub([row,col],indk);
for i = 1:128
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 xor(msg( i, 1), 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
%
% 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
i=0;
for j = 1:count
i = i + 1;
while 1
a(1) = DCTrgb(k1(i), k2(i) + 4);
a(2) = DCTrgb(k1(i) + 2,k2(i) + 3);
a(3) = DCTrgb(k1(i) + 5,k2(i) + 0);
y = sort(a);
if (y(3)-y(1)) > MD
DCTrgb(k1(i) + 5,k2(i) + 0) = ( DCTrgb(k1(i), k2(i) + 4) + DCTrgb(k1(i) + 2,k2(i) + 3) )/2.000;
i = i + 1;
else
break;
end
end
if msg(j, 1) == 1
DCTrgb(k1(i) + 5,k2(i) + 0) = y(1) - alpha;
else
DCTrgb(k1(i) + 5,k2(i) + 0) = y(3) + alpha;
end
end
% 信息写回保存
data = blkproc( DCTrgb, [ 8 8 ] , 'P1* x* P2 ', T', T) ;
result = data0;
result(:,:, 1) = data;
imwrite( result, imagegoal) ;
DCTyinxie.rar_DCT image matlab_DCTyinxie_dct 隐写_steganography_图像
版权申诉
35 浏览量
2022-07-15
17:12:34
上传
评论
收藏 3KB RAR 举报
小贝德罗
- 粉丝: 70
- 资源: 1万+
最新资源
- Code for the complete guide to tkinter tutorial
- 关于百货中心供应链管理系统.zip
- SimpleFolderIcon-master 修改Unity的Project下的文件夹图标
- A python Tkinter widget to display tile based maps
- A pure Python library for adding tables to a Tkinter application
- Vector资源文件.zip
- MobaXterm-Installer
- MicroMsg.xlsx
- 88-520告白(520气球).zip
- HTML+CSS+JS精品网页模板H126.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈