• 大小: 711KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: Matlab
  • 标签: ncc  matlab  加速算法  

资源简介

在传统的NCC算法上采用卷积加速

资源截图

代码片段和文件信息

clear all;
close all;
clc;
Il = double(imread(‘left.jpg‘));
left = rgb2gray(Il);
Ir = double(imread(‘right.jpg‘));
right = rgb2gray(Ir);
% left=double(imread(‘left.bmp‘));
% right=double(imread(‘right.bmp‘));

[HW]=size(left);

%%
% 根据匹配图片需要修改  
%窗口半径
N=5;
%最大视差
dMax=59;       %cones
%dMax=59;      %teddy
%dMax=15;      %tsukuba
%dMax=19;      %venus
%%
im=zeros(HW);
e=zeros(1dMax-1);

B=zeros(2*N+12*N+1);
B(:)=1;%全1矩阵
Il=left;
Ir=right;

Ir2=Ir.^2;
Il2=Il.^2;

D2=conv2(Il2B‘valid‘);
D3=conv2(Ir2B‘valid‘); %卷积

[H1W1]=size(D2);
e=zeros(H1W1);
NCCD=zeros(H1W1dMax-1);

for k=1:1:dMax
    IlIr=Il(1:H1+dMax:W).*Ir(1:H1+dMax-k:W-k); % Il(ij)*Ir(ij-k)大小为H*W-dMax(1:H1+dMax:W)
    D1=conv2(IlIrB‘valid‘);
    
    for i=1:H1
        for j=1+dMax:W1
     
           nCCD=D1(ij-dMax)/sqrt(D2(ij)*D3(ij-k));
           e(ij)=nCCD; 
        end
   end
   NCCD(::k)=e;
end

for i=1:H1
    for j=1:W1
        [junkim(ij)]=max(NCCD(ij:));
    end
end
imgn=zeros(HW);
imgn(1+N:H-N1+dMax+N:W1+N)=im(1:H11+dMax:W1);
imgn=medfilt1(imgn5);
%%
% 根据匹配图片需要修改
imgn=4*imgn;   %cones    
%imgn=4*imgn;  %teddy
%imgn=16*imgn; %tsukuba
%imgn=8*imgn;  %venus
imshow(imgn[])
imwrite(imgn/255‘result.png‘)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     362946  2015-07-07 18:33  ncc simple\left.png

     文件       1328  2016-05-13 21:14  ncc simple\NCC.m

     文件     364420  2015-07-07 18:33  ncc simple\right.png

     目录          0  2017-04-18 20:10  ncc simple

----------- ---------  ---------- -----  ----

               728694                    4


评论

共有 条评论