发布时间 : 星期六 文章图像数字水印+matlab程序更新完毕开始阅读9414497ed1f34693dbef3eca
J=M(1:128,1:128); J(128:464,128:364)=0; J=rot90(J); J=rot90(J);
J(465:800,365:600)=0; J=rot90(J); J=rot90(J); N=N+Q*J; K=idct2(N); RGB(:,:,3)=K; imshow(RGB);
title('加入水印后图像'); subplot(3,3,8)
I=imcrop(RGB,[1 1 598 798]); imshow(I); subplot(3,3,9) %水印提取程序 subplot(3,3,6)
RGB1=imread('MM','jpg'); J=RGB1(:,:,3); X=J(1:799,1:599); N=dct2(I(:,:,3)); M=dct2(X); M=(N-M)/Q;
B=idct2(M(337:464,237:364)); Y=mat2gray(B); imshow(Y);
title('经放缩后提取的水印图像') 运行结果:
④水印全过程(经空域压缩检测水印)
程序源代码 %水印加入程序
Q=input('请输入放缩因子的值(建议小于1):Q=')
P=input('请输入您所希望的图像放缩系数值(建议取值不要小于0.5):P=') subplot(3,3,1)
RGB=imread('浙江台州学院','jpg'); imshow(RGB); title('原始图像'); subplot(3,3,2) imshow(RGB(:,:,3)); title('B分量'); subplot(3,3,3) N=dct2(RGB(:,:,3));
imshow(log(abs(N)),[]),colorbar; title('B分量能量分布'); subplot(3,3,4)
I=imread('lena1','bmp');
imshow(I);
title('灰度水印图像'); subplot(3,3,5) M=dct2(I);
imshow(log(abs(M)),[]),colorbar; title('水印能量分布'); subplot(3,3,7) J=M(1:128,1:128); J(128:364,128:400)=0; J=rot90(J); J=rot90(J);
J(365:600,401:750)=0; J=rot90(J); J=rot90(J); N=N+Q*J; K=idct2(N); RGB(:,:,3)=K; imshow(RGB);
title('加入水印后图像'); subplot(3,3,8)
I=imresize(RGB,P,'nearest'); imshow(I);
title('压缩P倍图像'); subplot(3,3,9)
J=imresize(I,1/P,'nearest'); imshow(J);
title('再放大P倍还原图像') %水印提取程序 subplot(3,3,6)
RGB1=imread('浙江台州学院','jpg'); N=dct2(J(:,:,3)); M=dct2(RGB1(:,:,3)); M=(N-M)/Q;
B=idct2(M(236:365,350:401)); Y=mat2gray(B);
imshow(Y);
title('经放缩后提取的水印图像'): 运行结果:
4.2 图像水印的dwt算法
%以下是水印提取算法 clear all; clc;
%保存时间
start_time=cputime; figure(1);
%读出原始图像 subplot(1,2,1); input=imread('2.jpg'); imshow(input); title('原始图像');
%读出水印图像 subplot(1,2,2);
watermarked_image=imread('watermarked.bmp'); imshow(watermarked_image,[]); title('水印图像');
%三色分离
input=double(input);
watermarked_image=double(watermarked_image); inputr=input(:,:,1);
watermarked_imager=watermarked_image(:,:,1); inputg=input(:,:,2);
watermarked_imageg=watermarked_image(:,:,2); inputb=input(:,:,3);