1.一种基于数字水印的图像加密方法:
步骤a,获取坐标点:对字符型水印信息经预处理生成水印二维码嵌入的坐标点;
步骤a1,字符型水印信息序列为W,W={B0, B1, B2, B3, B4,…, Bn},其中,n为信息长度,Bn为水印信息的单位信息,Bn为ASCII值;
步骤a2,将Bn的ASCII值转换为8位字节字符串K,K={k0, k1, …, ki},ki的值取0或1,i=7;
步骤a3,设定bnj,其中j=1, 2,3,
bn0=000000 k0k1,bn1=00000k2k3 k4,bn2=00000k5k6k7,
将bnj进行十进制转化,得到anj=del(bnj);
步骤a4,对anj进行非线性映射如下:
(式1)
步骤a5,计算参数tn,即对Anj取平均数:
(式2)
步骤a6,取得图像的长为l,图像的宽为w,通过下式得到水印嵌入位置的坐标点(x, y):
(式3)
步骤b,在图像中嵌入二维码水印:
取步骤a中的每个坐标点所在的图像区块,将其称为子块,每个坐标点记为(x, y)n,子块记为Qn(x, y),子块集Q(x, y)={Q0(x, y), Q1(x, y), Q2(x, y), …, Qn(x, y)},将水印信息通过二维码生成器生成二维码,将二维码缩放至各个子块的大小,方法如下:
子块的总像素点个数为N,通过下式的区域投影公式更换子块:
(式4)
其中:
且0 <p< N,0 <q< N;
Yp代表二维码上黑色像素点对子块的投影,Cp代表二维码上白色像素点对子块的投影,xp代表子块的一行像素点,yp代表子块的一列像素点,
步骤c,检测信息中是否存在水印二维码:通过步骤a得到水印二维码的坐标点,提取坐标点所在子块的图像,通过像素点平均值比较检测信息中是否存在水印二维码,如果提取到的图像的像素点平均值等于加了水印二维码的图像的像素点平均值,则信息中存在水印二维码,反之,则不存在。