function [Y_waterMarked]=embed(S_Y_P_source,row,column,blocksize,message_pad)
% 嵌入规则:对于各8×8块,DCT变换后以step为步长量化,以S取模。
% if message bit is 0,coefficient+s/4;
% if message bit is 1,coefficient+3*s/4;
step=1;%量化步长
s=15;%模值
for y=0:(row/blocksize-1)
for x=0:(column/blocksize-1)
% transform block using DCT
dct_block=dct2(S_Y_P_source((y*blocksize+1):(y+1)*blocksize,(x*blocksize+1):(x+1)*blocksize));
dct_block_WM=dct_block;
% DCT变换后以step为步长量化,以S取模。
messured_dct_block=dct_block/step;
relaxed_messured_dct_block=messured_dct_block-mod(messured_dct_block,s);
% if message bit is 0 elseif message bit is 1
if (message_pad(y*column/blocksize+x+1) == 0)
dct_block_WM(1,2)=relaxed_messured_dct_block(1,2)+s/4;
dct_block_WM(3,1)=relaxed_messured_dct_block(3,1)+s/4;
dct_block_WM(4,4)=relaxed_messured_dct_block(4,4)+s/4;
elseif (message_pad(y*column/blocksize+x+1) == 1)
dct_block_WM(1,2)=relaxed_messured_dct_block(1,2)+3*s/4;
dct_block_WM(3,1)=relaxed_messured_dct_block(3,1)+3*s/4;
dct_block_WM(4,4)=relaxed_messured_dct_block(4,4)+3*s/4;
end
% transform block back into spatial domain
Y_waterMarked( y*blocksize+1:(y+1)*blocksize,x*blocksize+1:(x+1)*blocksize)=idct2(dct_block_WM);
end
end
zznieyanlong1989
- 粉丝: 0
- 资源: 6
最新资源
- 高校教师成果管理小程序的设计与实现springboot.zip
- 基于java+springboot+mysql+微信小程序的微信小程序的图书管理系统 源码+数据库+论文(高分毕业设计).zip
- 俞军产品方法论心得整理输出
- 奶茶点餐小程序ssm.zip
- 基于微信小程序的乡村政务服务系统springboot.zip
- 基于微信小程序的在线选课系统springboot.zip
- 基于java+springboot+mysql+微信小程序的微信小程序养老院系统 源码+数据库+论文(高分毕业设计).zip
- 基于java+springboot+mysql+微信小程序的物流管理系统 源码+数据库+论文(高分毕业设计).zip
- 个人社交名片html代码,改改就能用
- 基于小程序宿舍报修系统的设计与实现ssm.zip
- “村游网”系统的微信小程序开发ssm.zip
- “黄师日报”平安小程序springboot.zip
- 餐厅点餐微信小程序springboot.zip
- 基于vue的订餐小程序springboot.zip
- Android Studio Ladybug(android-studio-2024.2.1.12-cros.deb)
- 基于java+springboot+mysql+微信小程序的闲置品交易平台 源码+数据库+论文(高分毕业设计).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈