基于双目相机拍摄图像的深度信息提取和目标测距matlab仿真
创始人
2024-02-18 01:24:27
0

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB程序


1.算法描述

       双目相机一般由左眼和右眼两个水平放置的相机组成。当然也可以做成上下两个目,但我们见到的主流双目都是做成左右的。在左右双目的相机中,我们可以把两个相机都看作针孔相机。它们是水平放置的,意味两个相机的光圈中心都位于x轴上。它们的距离称为双目相机的基线(Baseline,记作b),是双目的重要参数。双目相机一般由左眼和右眼两个水平放置的相机组成。当然也可以做成上下两个目,但我们见到的主流双目都是做成左右的。在左右双目的相机中,我们可以把两个相机都看作针孔相机。它们是水平放置的,意味两个相机的光圈中心都位于x轴上。它们的距离称为双目相机的基线(Baseline,记作b),是双目的重要参数。

      考虑一个空间点P,它在左眼和右眼各成一像,记作PL,PR。由于相机基线的存在,这两个成像位置是不同的。理想情况下,由于左右相机只有在x轴上有位移,因此 P的像也只在x轴(对应图像的u轴)上有差异。我们记它在左侧的坐标为uL,右侧坐标为uR。那么,它们的几何关系如图1右侧所示。根据三角形P−PL−PR和P−OL−OR 的相似关系,有:       

整理得:

       这里d为左右图的横坐标之差,称为视差(Disparity)。根据视差,我们可以估计一个像素离相机的距离。视差与距离成反比:视差越大,距离越近。同时,由于视差最小为一个像素,于是双目的深度存在一个理论上的最大值,由fb确定。我们看到,当基线越长时,双目最大能测到的距离就会变远;反之,小型双目器件则只能测量很近的距离。
基线:两个光心的连线称为基线;

极平面:物点(空间点M)与两个光心的连线构成的平面称为极平面;

极线:极平面与成像平面的交线

极点:极线的一端,基线与像平面的交点

像点:极线的一端,光心与物点连线与像平面的交点;

相机成像系统中,共包含四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。

2.仿真效果预览

matlab2022a仿真结果如下:

 

3.MATLAB核心程序

%计算物体的深度距离
PL=imread('IMAGES\p1.jpg');
subplot(241),imshow(PL),title('左侧拍摄图像');
PL=rgb2gray(PL);
PL=255-PL;
PL1=im2bw(PL,0.8);
subplot(242),imshow(PL1),title('阈值分割图像');
se1=strel('rectangle',[5 5]);
PL2=imclose(PL1,se1);   %闭运算
se2=strel('rectangle',[5 5]);
PL3=imopen(PL2,se2);   %开运算
subplot(243),imshow(PL2),title('形态学处理');
imwrite(PL3,'PL3.bmp','bmp')
k=1;sum1=0;
for j=1:518        %计算目标一的像素突变点for i=1:388sum1=sum1+PL3(i,j);endk=k+1;P(k)=sum1/318;sum1=0;
end
x=1:518;
y=P(x);
subplot(244),plot(x,y),title('灰度变化图');
plot(x,y);
for i=2:518        %计算目标二的像素突变点if ((P(i-1)<0.01)&(P(i)>0.01)&(P(i)<0.16))Z(1)=i;continueendif ((P(i-1)<0.1)&(P(i)>0.16))Z(2)=i;continueend
end
%===============================%计算右边图像的目标位置
%===============================
PR=imread('IMAGES\p2.jpg');
subplot(245),imshow(PR);title('右侧拍摄图像');
PR=rgb2gray(PR);
PR=255-PR;
PR1=im2bw(PR,0.8);
subplot(246),imshow(PR1);title('阈值分割图像');
se1=strel('rectangle',[5 5]);
PR2=imclose(PR1,se1); 
se2=strel('rectangle',[5 5]);
PR3=imopen(PR2,se2); 
subplot(247),imshow(PR3),title('形态学处理');
k=1;sum2=0;
for j=1:518for i=1:388sum2=sum2+PR3(i,j);endk=k+1;Q(k)=sum2/318;sum2=0;
end
A59

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

相关内容

热门资讯

韩媒曝尹锡悦夫妇下周将被同时起... 据韩联社21日报道,负责调查韩国前总统尹锡悦夫人金建希弊案的独立检察组(独检组)将于下周同时对尹锡悦...
大冶一男子拦停轿车打砸!大冶公... 原标题:大冶公安查处一起妨碍交通工具正常行驶案件 2025年12月20日15时许,我辖区居民刘某(男...
化解纠纷12215件 银行点赞... 中国民生银行信用卡中心昆明分中心向昆明市官渡区人民法院立案庭立案窗口、矛盾纠纷化解中心以及保全团队赠...
政治思想工作条例解读,政治思想... 政治思想工作条例解读,政治思想工作条例最新版全文 政治思想工作条例最新版全文解读:照亮前行之路的“灯...
谷歌起诉爬虫公司SerpApi 谷歌起诉爬虫工具开发商SerpApi,指控其通过非法手段规避反爬虫机制,窃取大量受版权保护的内容并出...
240小时过境免签一年 330... 中新网昆明12月21日电 (杨畅)2024年12月17日起,中国将原有的72小时/144小时过境免签...
明年1月1日起,山西省、青海省... 公众号转载山西经济日报稿件,须申请授权。 记者12月19日从财政部了解到,山西省、青海省自2026年...
“索赔420万”,公牛集团已起... “10户中国家庭,7户用公牛”,是公牛集团股份有限公司(以下简称“公牛集团”)长期使用的宣传语。然而...
赋能法援“生力军”!龙华区为2... 深圳商报·读创客户端首席记者 张玮玮 通讯员 曹鹏 文/图 12月17日,深圳市龙华区司法局组织开展...
韩媒:金建希弊案独检组下周将同... 中新网12月21日电 据韩联社21日报道,负责调查韩国前总统尹锡悦夫人金建希弊案的独立检察组(独检组...