脆弱水印嵌入算法:提取水印代码分析
脆弱水印嵌入算法:提取水印代码分析
本文分析了脆弱水印嵌入算法的提取过程代码。该代码使用小波分解和子带选择来提取嵌入的水印信息。
提取水印代码
function rw = wm_extr(J)
%此函数为提取过程
%输入:J为水印嵌入的图像;
%输出:rw为提取的水印
%%
%一层小波分解
[LL,LH,HL,HH] = dwt2(J,'haar');
%=======计算avr_LH======
[m,n] = size(LH); avr_LH = 0;
%=======计算avr_HL======
[m0,n0] = size(HL); avr_HL = 0;
%判断嵌入的子带
if avr_LH <= avr_HL
num = 0; loca = LH;
else
num = 1; loca = HL;
end
%%
%提取水印
if num == 0
rw = wm_extr_type1(loca); %写出提取子函数
else
rw = wm_extr_type0(loca); %写出提取子函数
end
代码分析
- 小波分解: 代码首先对水印嵌入的图像
J进行一层小波分解,得到四个子带LL、LH、HL和HH。 - 子带选择: 代码通过计算
LH和HL子带的平均值avr_LH和avr_HL来判断水印嵌入的子带。如果avr_LH小于等于avr_HL,则水印嵌入在LH子带中,否则嵌入在HL子带中。 - 提取水印: 根据选择的子带,代码调用相应的提取子函数
wm_extr_type1或wm_extr_type0来提取水印。
代码缺失部分
该代码示例缺少部分代码,包括:
- 计算
avr_LH和avr_HL的代码 - 提取子函数
wm_extr_type1和wm_extr_type0的代码
总结
本文分析了脆弱水印嵌入算法的提取过程代码,重点讲解了提取水印的流程和关键代码段。代码示例展示了如何通过小波分解和子带选择来提取嵌入的水印信息。
注意: 该代码示例仅供参考,实际应用中需要根据具体的算法和需求进行修改和完善。
原文地址: https://www.cveoy.top/t/topic/jpPM 著作权归作者所有。请勿转载和采集!