|
|
我的毕业设计是全息水印,可全息方面一片空白,想做个彩色的,可怎么弄都达不到效果。哪位高手帮忙解决下,先谢谢了!QQ:413299159 Eail:wangrui02402102@163.com
%球面物体的傅里叶全息图
clear;
clc;
cm=0.01;
mm=0.001;
um=1e-6;
w=0.63*um;%波长
f=4;
N=64;%全息图分辨率
%全息图大小
hx=1*cm;
hy=1*cm;
%全息图各方向增量
hdx=hx/N;
hdy=hy/N;
u=hdx.*(ones(N,1)*[-N/2:N/2-1]);
v=(hdy.*(ones(N,1)*[-N/2:N/2-1]))';
A=imread('Wapple.bmp');
M=64;
%重现图大小
rx=1*cm;
ry=1*cm;
%重现图各方向增量
rdx=rx/N;
rdy=ry/N;
x1=rdx.*(ones(N,1)*[-N/2:N/2-1]);
y1=(rdy.*(ones(N,1)*[-N/2:N/2-1]))';
r=2*cm/pi;%球面半径
xx=x1./r;
yy=y1./r;
x=r*sin(xx);
y=r*sin(yy).*cos(xx);
z=r*cos(yy).*cos(xx);
k=1:N;
I=1:N;
h(k,I)=0;
f1=(u.*u+v.*v);
f1=pi*f1/(w*f*f);
o=2*pi/(w*f);
for k=1:N
for I=1:N
del=0 ;
for m=1:M
for n=1:M
if A(m,n)~=0
del=double(A(m,n))*exp(j*(z(m,n)*f1(k,I)-o*(x(m,n)*u(k,I)+y(m,n)*v(k,I))));
h(k,I)= h(k,I)+del ;
end
end
end
end
end
save h64r1h1;
%数字重现
clear;
clc;
load h64r1h1.mat;
dx=0.5*cm;
dy=0.5*cm;
figure;
imshow(A);title('原始图像');%原始图像
ex=exp(j*2*pi*(dx*u+dy*v)/(w*f));
h=3+real(h.*ex);
figure;
imshow(h);title('全息图');
rec=abs(fftshift(fft2(h)));
rec=mat2gray(rec);
figure;
imshow(rec);title('再现像'); |
|