
matlab高手请指点迷津——关于鱼眼镜头的校正代码
黄有度和苏化明的方法《一种鱼眼图像到透视投影图像的变换模型a=imread('1.PNG');I=rgb2gray(a);figure(1),imshow(a);I=rg...
黄有度和苏化明的方法《一种鱼眼图像到透视投影图像的变换模型
a=imread('1.PNG');
I=rgb2gray(a);
figure(1),imshow(a);
I=rgb2gray(a);
[m,n]=size(a);
c=ones(size(a));
for i=1:m
for j=1:n
u=307.32*i/sqrt(i.^2+j.^2+10);
v=307.32*j/sqrt(i.^2+j.^2+10);
a=ceil(u);
b=ceil(v);
e=a-u;
f=b-v;
if u==fix(u)&v==fix(v)
c(i,j)=I(u,v);
else if 0<u<=1&0<v<=1
c(i,j)=I(1,1);
else if 0<u<=1&v>1
c(i,j)=e*(1-f)*I(a,b-1)+e*f*I(a,b);
else if 0<v<=1&u>1
c(i,j)=(1-e)*f*I(a-1,b)+e*f*I(a,b);
else c(i,j)=(1-e)*(1-f)*I(a-1,b-1)+(1-e)*f*I(a-1,b)+e*(1-f)*I(a,b-1)+e*f*I(a,b)
end
end
end
J=mat2gray(c);
image(J);
我的程序有什么问题呢,初学matlab图像处理,忘各位大侠帮忙
??? Error: File: D:\D\matlab\work\Untitled1.m Line: 31 Column: 10
This statement is incomplete.
变换的模型是u=R*i/sqrt(i.^2+j.^2+Z.^2)
v=R*j/sqrt(i.^2+j.^2+Z.^2)
其中(u,v)是鱼眼图像上的点,(i,j,Z)是正常图像的点。还有Z的具体取值应该为多少呀?我试了小值 和大值都不合适。 展开
a=imread('1.PNG');
I=rgb2gray(a);
figure(1),imshow(a);
I=rgb2gray(a);
[m,n]=size(a);
c=ones(size(a));
for i=1:m
for j=1:n
u=307.32*i/sqrt(i.^2+j.^2+10);
v=307.32*j/sqrt(i.^2+j.^2+10);
a=ceil(u);
b=ceil(v);
e=a-u;
f=b-v;
if u==fix(u)&v==fix(v)
c(i,j)=I(u,v);
else if 0<u<=1&0<v<=1
c(i,j)=I(1,1);
else if 0<u<=1&v>1
c(i,j)=e*(1-f)*I(a,b-1)+e*f*I(a,b);
else if 0<v<=1&u>1
c(i,j)=(1-e)*f*I(a-1,b)+e*f*I(a,b);
else c(i,j)=(1-e)*(1-f)*I(a-1,b-1)+(1-e)*f*I(a-1,b)+e*(1-f)*I(a,b-1)+e*f*I(a,b)
end
end
end
J=mat2gray(c);
image(J);
我的程序有什么问题呢,初学matlab图像处理,忘各位大侠帮忙
??? Error: File: D:\D\matlab\work\Untitled1.m Line: 31 Column: 10
This statement is incomplete.
变换的模型是u=R*i/sqrt(i.^2+j.^2+Z.^2)
v=R*j/sqrt(i.^2+j.^2+Z.^2)
其中(u,v)是鱼眼图像上的点,(i,j,Z)是正常图像的点。还有Z的具体取值应该为多少呀?我试了小值 和大值都不合适。 展开
若以下回答无法解决问题,邀请你更新回答
2个回答
展开全部
错误在哪行
更多追问追答
追问
我改了好久 不知道为什么错了 还有end的次数应该是三次的吧,我改为六次就不出现错误 但运行出来的校正图像是空白图像
追答
你看看你的.m文件里31行是那句话
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈咯,,我最近也在做这个,也是参考的和你一样的文献呢。。不知道你做出来了么??我出来的图不太对呀!!求指导!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询