当前位置:编程学习 > Matlab >>

用MATLAB给图片加水印,怎样生成要加入的水印,并把水印嵌入图片中。 给个程序呗,谢谢了

答案:M=256; %原图像长度 N=32; %水印图像长度 K=8; I=zeros(M,M); II=zeros(K,K); B=zeros(M,M); Idct=zeros(K,K); D=zeros(M,M); %读取原图像 I=imread('d:\My Documents\数字水印\LENA.BMP'); subplot(2,2,1); %显示原图像 imshow(I); title('原图像'); %产生水印序列 randn('seed',10); mark=randn(1024,1); subplot(2,2,2); plot(mark); title('水印序列'); %嵌入水印 T=1; for m=1:N for n=1:N x=(m-1)*K+1; y=(n-1)*K+1; II=I(x:x+K-1,y:y+K-1);%将原图分成8*8的子块 Idct=dct2(II);%对子块进行DCT变换 if x==1&y==1 alfa=0.002; else alfa=0; end B=Idct*(1+alfa*mark(T));%嵌入水印 Bidct=idct2(B);%进行DCT反变换 I(x:x+K-1,y:y+K-1)=Bidct; T=T+1; end end subplot(2,2,3); imshow(I);%显示嵌入水印后的图像 title('嵌入水印后的图像');imwrite(I,'嵌入后的图像.bmp');

上一个:matlab编写程序在窗口绘制y=4xe^(3x+2)的曲线?
下一个:这段matlab程序是什么意思??求详解!!!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,