首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从单个移动摄像机拍摄的两幅图像中获取视差图

从单个移动摄像机拍摄的两幅图像中获取视差图
EN

Stack Overflow用户
提问于 2018-03-13 17:30:13
回答 1查看 850关注 0票数 2

我用一个移动的相机拍了两张照片。我试着从同一条极线上取它们。

然后在Matlab中计算视差。

代码语言:javascript
复制
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

我的输出由许多噪声组成。当我尝试计算筑波左右图像时,它显示了一个完美而平滑的视差图。为什么会发生这种情况?我错过了什么重要的步骤吗?视差范围会影响吗?

EN

回答 1

Stack Overflow用户

发布于 2018-03-13 23:30:28

如果您能发布已实现的disparity函数,将会有所帮助。我建议传递一个正数的视差值e.g. 59,你可以尝试以下方法:

代码语言:javascript
复制
function disparity_map = disparity(I1, I2, disp_value)

shiftedWin = 5 %any odd number
windowSize = (shiftedWin-1)/2;

lImage = im2double(I1)
rImage = im2double(I2)
disp2 = uint8(imread(I1));

[lRow , lCol] = size(lImage);
DispImg = zeros(lRow,lCol);

for i = windowSize+1 :1: lRow-windowSize
    for j = windowSize+1 :1:  lCol-windowSize-disp_value

        previousScore = 9999;
        bestDisparity = 0;

        lReg = lImage(i-windowSize:i+windowSize,j-windowSize:j+windowSize);

        for cDisparity = 1:disp_value

                rReg = rImage(i-windowSize:i+windowSize,j+cDisparity-windowSize:j+windowSize+cDisparity); %% correlated shifted window

                %%SAD method%%
                tempScore = abs(rReg - lReg);
                curScore = sum(tempScore(:));        
                %lineSums = [lineSums, corrScore];

            if (previousScore > curScore)                
                previousScore = curScore;
                bestDisparity = cDisparity;
            end
        end

        DispImg(i,j) = bestDisparity;

    end
end

ilumImg = DispImg *4;
imagesc(ilumImg)
colorbar

diffImg = imabsdiff(uint8(ilumImg),disp2);
figure
imshow(diffImg,[])    
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49252536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档