【发布时间】:2018-03-13 09:30:13
【问题描述】:
我正在使用单个移动相机拍摄两张图像。我试图将它们从同一极线中取出。
然后我在 Matlab 中计算视差。
I1 = imread('4.jpg'); %right image
I2 = imread('3.jpg'); %left image
figure
imshow(stereoAnaglyph(I1,I2));
title('Red-cyan composite view of the stereo images');
disparityRange = [-6 26];
disparityMap = disparity(rgb2gray(I1),rgb2gray(I2),'DisparityRange',disparityRange);
figure
imshow(disparityMap,disparityRange);
title('Disparity Map');
colormap(gca,jet)
colorbar
我的输出包含许多噪音。当我尝试用 tsukuba 左右图像进行计算时,它显示了一个完美而平滑的视差图。为什么会这样?我错过了任何重要的步骤吗?视差范围有影响吗?
【问题讨论】:
-
旁注:
jet颜色图是可用于此类数据的最糟糕的选择之一。你想要一些不同的颜色图 -
另外,“试图”将它们带入核平面和它们处于核平面是非常不同的概念;)
-
感谢您的评论。但是,我对立体视觉完全陌生,我不太了解。为什么jet colormap是最糟糕的选择?它只是可视化最差的吗?所以我必须纠正图像以使它们在同一极平面上?
-
是的,jet 有多种颜色,而在这里你有不同的数据。要么选择发散的颜色图,要么选择统一的颜色图(如 parula、gray)
-
我一直在环顾四周,你的结果似乎并不太疯狂,这取决于 MATLAB 使用什么算法。样本数据集非常好,但对于任何任意图像,计算视差图都非常困难,尤其是当你有均匀区域时。墙在各处看起来几乎相同,因此视差图“随机”匹配它。请注意所有确实是对象的东西是如何正确绘制的,但并非所有均匀区域都没有