雨鼓阳光
2013-05-12, 09:53
我的程序是先编译一张测试条纹图,然后对这个条纹图放到模拟3D坐标的显示器中,因为显示器的采样点不发生变化,因而当感觉图像显示凸出显示器时会产生混叠公式z=e*V/(e-d); x=V./z.*c-d./2; y=V./z.*r; 因为是显示器上的,那么x和y的值必须取整数。下面是我的程序,哪位大神能帮我修改下。 e=65mm是瞳距,V=600mm是观看距离,d=-24mm是视差,显示器的分辨率是0.4mm。
M=300;
N=300;
u0=50;
v0=50;
A=10;
c=0:M-1;
r=0:N-1;
[C,R]=meshgrid(c,r);
g=A*sin(u0*R+v0*C);
g=mat2gray(g)
imshow(g)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% mix %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
e=65*2.5;
d=-24*2.5;
V=600*2.5;
z=e*V/(e-d);
for c=1:M-1
for r=1:N-1
x=round((e.*(2.*c+d))/(2.*(e-d)));
y=round((e.*r)/(e-d));
h=zeros(x,y);
h(x,y)=g(c,r);
end
end
imshow(h,[]);
%h=mat2gray(h)
figure
错误??? Attempted to access g(0,0); index must be a positive integer or logical.
Error in ==> Untitled4 at 25
h(x,y)=g(c,r);
这是什么错误,怎么修改啊
M=300;
N=300;
u0=50;
v0=50;
A=10;
c=0:M-1;
r=0:N-1;
[C,R]=meshgrid(c,r);
g=A*sin(u0*R+v0*C);
g=mat2gray(g)
imshow(g)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% mix %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
e=65*2.5;
d=-24*2.5;
V=600*2.5;
z=e*V/(e-d);
for c=1:M-1
for r=1:N-1
x=round((e.*(2.*c+d))/(2.*(e-d)));
y=round((e.*r)/(e-d));
h=zeros(x,y);
h(x,y)=g(c,r);
end
end
imshow(h,[]);
%h=mat2gray(h)
figure
错误??? Attempted to access g(0,0); index must be a positive integer or logical.
Error in ==> Untitled4 at 25
h(x,y)=g(c,r);
这是什么错误,怎么修改啊