实际上,在产品里能够设置密码并且在产品中添加水印是最理想的防盗措施,因为设置密码是为了防止别人剽窃技术或使用产品,而添加水印更多的是一种补救措施,是在他人成功盗取自己技术的前提下,在法律上夺取主动权的砝码。下面来介绍一下如何在MATLAB中实现往数字图像中添加水印效果,具体如下:
1、在MATLAB主界面的编辑器中写入下列代码:
%此程序实现数字图像的水印嵌入
function dwtgl
clc;clear all;close all;
disp('计算机正在准备输出数字水印图像,请耐心等待……');
input=imread('H:\2018秋资料\mok\a7.jpg');%从H盘里读出原始图像
input_add=input;
water=imread('H:\2018秋资料\mok\a6.jpg');%读出水印图像
water_add=water;
%将原始图像和水印的RGB三色分离
input=double(input);water=double(water);inputr=input(:,:,1);waterr=water(:,:,1);
inputg=input(:,:,2);waterg=water(:,:,2);inputb=input(:,:,3);waterb=water(:,:,3);
%系数r大,增加鲁棒性,不易随几何变形和物理变形失去水印,但是水印的透明性较差
r=0.06;
[Cwr,Swr]=wavedec2(waterr,1,'haar');%水印R分解
[Cr,Sr]=wavedec2(inputr,2,'haar');%图像R分解
%水印的嵌入
Cr(1:size(Cwr,2)/16)=Cr(1:size(Cwr,2)/16)+r*Cwr(1:size(Cwr,2)/16);
k=0;
while k<=size(Cr,2)/size