DCT 嵌入水印图片与DWT是擦不多的。在Matlab上直接用函数的话值是一样的,应该说DWT包含DCT。下面我说一下嵌入过程,程序就不写了。网上很多的。给你一个嵌入思路。
DWT方法。原图大小为(512,512)嵌入图片大小为(64,64)
嵌入:
读取原图片。
读取水印图片。
原图片要处理为灰图。
水印图片要处理为2值图。
生成伪随机乱数(记住是怎么生成的,提取时用到)。
随机乱数做成2值图K与水印图生成密钥WK的2值图(方法有很多种)。
原图片做3次DWT处理(Matlab里函数是dwt2)得到图片DA,DB,DC,DD。
取出DB或DC,或者DB,DC都用上,设一个嵌入强度Q,与密钥K一起嵌入到DB,DC中(方法有很多种)。
将嵌入后的DB,DC与没有嵌入的DA,DD一起(DA,DB,DC,DD顺序不要错了)进行反DWT处理。
得到嵌入水印后的图片进行保存。
提取:
读取嵌入水印后的图片。
嵌入水印后的图片做3次DWT,并得到DA,DB,DC,DD。
定义Q(嵌入时的强度,比如5)。
生成嵌入水印时的伪随机乱数并做成2值图K。
取出,嵌入水印的成分(嵌入到DB的话取出DB,两个都用了就两个都取出,在这里用DB代替)。
进行嵌入时的反计算。
提取后的水印图片进行保存。
水印嵌入过程的流程图如图3-12所示。
水印提取过程的流程图如图3-13所示。
将像素值对2取模,可以获取像素值的最低有效位。因此,可以通过让含水印载体图像对2取模的方式,获取图像的“最低有效位”位平面,提取到的位平面即为水印信息。
【例3.15】编写程序,模拟数字水印的嵌入和提取过程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)