1.通过应用DCT将图像带到频域
2.生成水印信号
3.使用原始图像的千个最大系数来嵌入长度为1000的水印序列。
4.使用下面的等式,根据消息的流比特修改系数
| CAW = CA(1 +αWi)|
5.提取过程 - 简单地从水印图像系数中减去原始DCT系数
function WM_plot(r,c,ext_wm,orig_wm)
for k=1:1000
wm=randn(r,c);%depending on the size of the watermark
wm=uint8(wm);%if necessary
store(k)=WM_detect(ext_wm,wm);%wrong watermarks
if k == 400
store(k)=WM_detect(ext_wm,orig_wm);%original watermark detection
end
end
figure(1),plot(1:k,[store]),ylabel('Watermark detector response'),xlabel('random watermarks');
hold on
%threshold calculation
[peak,ind]=sort(store,'descend');
threshold=peak(2)+(peak(2)*0.1);%T=second highest peak+10percentof the same
figure(1),plot(1:1000,[threshold],'red');
hold on
figure(1),plot(1:1000,peak(2),'green');
答案 0 :(得分:2)
错误«在提示符或脚本中不允许使用函数定义» - 告诉您尝试在错误的位置定义函数。根据{{3}}的类似问题,你应该:
将每个函数写入编辑器文件并将其保存为函数标题,例如:
function hello_world(hObject,evt)
fprintf(2,'Hello World!');
end
保存在hello_world.m
中之后,您应该从主应用程序中调用您的函数。