资源简介
使用matlab方法对鱼眼相机拍摄的畸变图像进行经纬映射方法矫正
矫正效果相对较好,大家可以试试看!希望对各位有所帮助
代码片段和文件信息
function C=jingwei(AR)
%《应用经纬映射的鱼眼图像校正设计方法》
[mnk]=size(A);
C=zeros(mn); %一定要加 不然像素会重叠到一个地方 多对一
f=R*2/pi;
for i=1:m
for j=1:n
u=j-R;
v=R-i;
r=sqrt(u^2+v^2);
if(r==0)
fi=0;
elseif(u>=0)
fi=asin(v/r);
else
fi=pi-asin(v/r);
end
theta=r/f;
x=f*sin(theta)*cos(fi);
y=f*sin(theta)*sin(fi);
z=f*cos(theta);
rr=sqrt(x^2+z^2);
sita=pi/2-atan(y/rr);
if(z>=0)
fai=acos(x/rr);
else
fai=pi+acos(x/rr);
end
xx=round(f*sita);
yy=round(2*R-f*fai);
if(xx<1||yy<1||xx>m||yy>n)
continue;
end
C(xxyy1)=A(ij1);
C(xxyy2)=A(ij2);
C(xxyy3)=A(ij3);
end
end
C=uint8(C);
T=15;
Y=[];
Z1=[];
Z2=[];
Z3=[];
for i=1:m
for j=1:n
I(ij)=0.59*C(ij1)+0.11*C(ij2)+0.3*C(ij3);
if(I(ij)>=T)
Y=[Y j];
Z1=[Z1 C(ij1)];
Z2=[Z2 C(ij2)];
Z3=[Z3 C(ij3)];
end
end
if(size(Y)<3)
Y=[];
Z1=[];
Z2=[];
Z3=[];
continue;
else
for j=1:n
I(ij)=0.59*C(ij1)+0.11*C(ij2)+0.3*C(ij3);
if(I(ij) C(ij1)=interp1(Ydouble(Z1)j‘cubic‘);
C(ij2)=interp1(Ydouble(Z2)j‘cubic‘);
C(ij3)=interp1(Ydouble(Z3)j‘cubic‘);
end
end
end
Y=[];
Z1=[];
Z2=[];
Z3=[];
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-06-23 18:34 经纬模型\
文件 415798 2016-05-12 18:11 经纬模型\060.bmp
文件 49808 2016-05-04 01:54 经纬模型\112.jpg
文件 49851 2016-05-12 18:11 经纬模型\3.jpg
文件 177093 2017-05-10 14:07 经纬模型\3.png
文件 205 2017-05-31 15:42 经纬模型\Unti
文件 48111 2016-05-04 01:54 经纬模型\a00.jpg
文件 34862 2016-05-04 01:54 经纬模型\b.jpg
文件 68111 2016-05-04 01:54 经纬模型\f.jpg
文件 1665 2017-05-10 00:01 经纬模型\jingwei.m
文件 2025 2017-05-28 21:22 经纬模型\jingwei2.m
文件 1692 2017-05-31 15:11 经纬模型\jingwei3.m
文件 1355 2017-05-09 10:49 经纬模型\kuaisusaomiao.m
文件 1615 2017-05-18 00:10 经纬模型\newkuaisusaomiao.m
文件 15344 2017-05-10 00:03 经纬模型\s1.jpg
文件 15330 2017-05-10 00:03 经纬模型\s2.jpg
文件 14824 2017-05-10 00:03 经纬模型\s3.jpg
评论
共有 条评论