matlab双目测距中怎样把摄像机标定后的内外参数和视差图结合起来计算深度距离

matlab双目测距中怎样把摄像机标定后的内外参数和视差图结合起来计算深度距离,第1张

你用的是双面立体相斗码机配置吗?如果是,你需要标定左右两个相机的内部参数,即焦距,像素物理尺寸,还有两个相机间的三维平移,旋转量。如果你不做三维重建的话,就不需要得到外部参数。得到相机内部参数,就可以矫正左右两幅图像对,然后使用立体匹配算法得到目标的视差图像,然后用你得到的,fc,cc参数,用三角法轿销扒则计算出目标点到相机平面的距离。三角法则:z=f*b/d。f是焦距,b是两相机间的横向距离,d是立体匹配得到的视差值,即目标闭昌像素点在左右两相机平面x方向的坐标差值。

X=0%清空X.

map=0

[X,map]=imread('lena256x256x8.bmp')%读取图像

p=imfinfo('lena256x256x8.bmp')%读取图像的属性

s=2^p.BitDepth-1%计算图像的最大深度,如8位图像为255.

%-------------------------------------------------------------------------

%简化的图像增强算法:简化Pmn及T变换的算法为:

Y=0%清空Y.

A=0%清空A.

Y=double(X)./s%计算P(m,n),相当于求G(x)

%模糊变换算法

for m=1:p.Height

for n=1:p.Width

if(Y(m,n)<0.5)

A(m,n)=2*Y(m,n)^2

else

A(m,n)=1-2*(1-Y(m,n))^2

end

end

end

B=0%清空B.

B=uint8(A*(2^p.BitDepth-1))%相当于求此贺逆G-1(x')

%%%区域减影增强算法

P=0%清空P.

d=0.00005%%%%设定冗余度

k=2%%%%设定修正参数

for m=1:p.Height

for n=1:p.Width

if(Y(m,n)-A(m,n)>d)

P(m,n)=Y(m,n)+k*(Y(m,n)-A(m,n))

end

if(Y(m,n)-A(m,n)<(-d))

P(m,n)=Y(m,n)+(-k)*(Y(m,n)-A(m,n))

else

P(m,n)=Y(m,n)

end

end

end

B=0%清空B.

B=uint8(P*(2^p.BitDepth-1))%相当于求逆G-1(x')

%%%图像增强几种方法效果对比

I=imread('lena256x256x8.bmp') %读入图像

I=double(I) %变成双精度

K1=filter2(fspecial('average',5),I)/255 %进行滤正大波

K2=imsubtract(I,K1)

K2=immultiply(K2,0.5)

K3=imadd(I,K2)

K2=uint8(K2) %转成8位数据

K3=uint8(K3)

I=uint8(I)

figure

title('图像增强几种方举扒竖法效果对比')

subplot(2,2,1)imshow(I)title('原始图像')

subplot(2,2,2)imshow(K1)title('低通滤波图像')

subplot(2,2,3)imshow(K3)title('线性反锐化掩膜图像')

subplot(2,2,4)imshow(B)title('区域减影增强图像')

从图像可知,这两条曲线分别是sin(x),cos(x)。实现这两笑改条曲线的绘制可以这样编写其代码:

x=0:pi/10:4*pi  %生成x向量组,其范围从0到4π,步长为pi/10

y1=sin(x)  %计算正弦函数值

y2=cos(x) %计算余弦函数值

plot(x,y1,'--',x,y2,'-')   %绘制正弦函数和余弦函数曲线图

legend("sin(x)","cos(x)")  %图例标碰含判注老键

xlabel('时间')ylabel('幅值')%标注坐标轴名称

执行代码和运行结果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12420006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存