今晚突然想写一个matlab的,基于SAD的区域法立体匹配方法。
下面以并列出matlab和c++版本的代码及实验结果。
MATLAB版本:
有个地方36~42行应该还能优化,只是我没找到相应的函数,这个地方运行很慢

 1SAD匹配产生致密的深度图%function SADMatch
 2SAD匹配产生致密的深度图clear,clc
 3SAD匹配产生致密的深度图tic
 4SAD匹配产生致密的深度图%im1=imread('Test_left.jpg');
 5SAD匹配产生致密的深度图%im2=imread('Test_right.jpg');
 6SAD匹配产生致密的深度图% im1=imread('im0.jpg');
 7SAD匹配产生致密的深度图% im2=imread('im1.jpg');
 8SAD匹配产生致密的深度图im1=imread('left.BMP');
 9SAD匹配产生致密的深度图im2=imread('right.BMP');
10SAD匹配产生致密的深度图
11SAD匹配产生致密的深度图
12SAD匹配产生致密的深度图if isrgb(im1)
13SAD匹配产生致密的深度图    im1=rgb2gray(im1);
14SAD匹配产生致密的深度图end
15SAD匹配产生致密的深度图%imshow(im1);
16SAD匹配产生致密的深度图im1=double(im1);
17SAD匹配产生致密的深度图
18SAD匹配产生致密的深度图if isrgb(im2)
19SAD匹配产生致密的深度图    im2=rgb2gray(im2);
20SAD匹配产生致密的深度图end
21SAD匹配产生致密的深度图%figure
22SAD匹配产生致密的深度图%imshow(im2);
23SAD匹配产生致密的深度图im2=double(im2);
24SAD匹配产生致密的深度图
25SAD匹配产生致密的深度图D=20%最大视差
26SAD匹配产生致密的深度图N=5%窗口大小的一半
27SAD匹配产生致密的深度图[H,W]=size(im1);
28SAD匹配产生致密的深度图
29SAD匹配产生致密的深度图%计算右图减去左图,相减产生D个矩阵放到imgDiff中 
30SAD匹配产生致密的深度图imgDiff=zeros(H,W,D);
31SAD匹配产生致密的深度图e=zeros(H,W);
32SAD匹配产生致密的深度图for i=1:D
33SAD匹配产生致密的深度图    fprintf('%g\n',i)
34SAD匹配产生致密的深度图    e(:,1:(W-i))=abs(im2(:,1:(W-i))- im1(:,(i+1):W));
35SAD匹配产生致密的深度图    %e=conv2(e,e,'same');
36SAD匹配产生致密的深度图    e2=zeros(H,W);%计算窗口内的和
37SAD匹配产生致密的深度图    for y=(N+1):(H-N)
38SAD匹配产生致密的深度图        for x=(N+1):(W-N)
39SAD匹配产生致密的深度图            e2(y,x)=sum(sum(e((y-N):(y+N),(x-N):(x+N))));
40SAD匹配产生致密的深度图        end
41SAD匹配产生致密的深度图    end
42SAD匹配产生致密的深度图    imgDiff(:,:,i)=e2;
43SAD匹配产生致密的深度图end
44SAD匹配产生致密的深度图
45SAD匹配产生致密的深度图%找到最小的视差,到dispMap
46SAD匹配产生致密的深度图dispMap=zeros(H,W);
47SAD匹配产生致密的深度图for x=1:W
48SAD匹配产生致密的深度图    for y=1:H
49SAD匹配产生致密的深度图        %[val,id]=min(imgDiff(y,x,:));
50SAD匹配产生致密的深度图        [val,id]=sort(imgDiff(y,x,:));
51SAD匹配产生致密的深度图        if abs(val(1)-val(2))>10
52SAD匹配产生致密的深度图            dispMap(y,x)=id(1);
53SAD匹配产生致密的深度图        end
54SAD匹配产生致密的深度图    end
55SAD匹配产生致密的深度图end
56SAD匹配产生致密的深度图dispMap=dispMap*200/D;
57SAD匹配产生致密的深度图dispMap=uint8(dispMap);
58SAD匹配产生致密的深度图toc
59SAD匹配产生致密的深度图imshow(dispMap)
60SAD匹配产生致密的深度图%imwrite(dispMap,'dispMap.jpg')
c版本:
加入了crosscheck功能

  1}

相关文章:

  • 2021-03-30
  • 2021-09-25
  • 2022-12-23
  • 2021-04-22
  • 2021-09-21
  • 2022-01-19
  • 2022-01-17
  • 2021-05-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2021-06-01
  • 2021-05-24
  • 2021-05-22
相关资源
相似解决方案