资源简介

基于置信传播的立体匹配算法,匹配精度较高

资源截图

代码片段和文件信息

%基于可信传播的立体匹配算法
%代价函数:AD
%优化策略:max-product belief propagationaccelerated updating
%参考论文:Comparison of Graph Cuts with Belief Propagation for Stereo using
%Identical MRF Parameters
%参考论文:Stereo Matching Using Belief Propagation
%
%dlut
%wzb
function BP_stereo()
clear;
clc;

T=4;%Plots平滑模型的梯度阈值
Truncation=20;%代价函数的截断阈值
P=4;%Plots模型参数
s=10;%Plos模型参数
D=50;%parameter for converting cost into compatibility   exp(-C/D)
iter=50;%belief propagation 算法的迭代次数
%公共参数

T = input(‘Input the smooth parameter of Plots model T[4]: ‘);
if isempty(T)%Plots平滑模型的梯度阈值
    T =  4;
end

s = input(‘Input the smooth parameter of Plots model s[10]: ‘);
if isempty(s)%Plos模型参数
    s =  10;
end

P = input(‘Input the smooth parameter of Plots model P[4]: ‘);
if isempty(P)%Plots模型参数
    P =  4;
end

Truncation = input(‘Input the truncation value of cost Truncation[20]: ‘);
if isempty(Truncation)%代价函数的截断阈值
    Truncation =  20;
end

iter = input(‘Input the iteration times iter[50]: ‘);
if isempty(iter)
    iter =  50;
end

%图像名

%reference = imread( ‘E:\资料\双目\原图\tsu_L.jpg‘ );%参考图像左图像
reference = imread( ‘D:\D测试图片320\ur_c_s_03a_01_L_0589.jpg‘ );%参考图像左图像
%D:\障碍物图集\ConstructionSite-left
target = imread( ‘D:\D测试图片320\ur_c_s_03a_01_R_0589.jpg‘ );%目标图像

dmax = input(‘Input the disparity range(the max disparity)[16]:‘);%最大视差值,候选视差范围从0-dmax
if isempty(dmax)
    dmax=16;%19
end
sdmax=‘The disparity range is: 0--‘;
eval([‘disp(‘‘[‘ sdmax num2str(dmax) ‘]‘‘)‘]);

scalar = input(‘Input the disparity scalar when saved scalar[16]:‘);
if isempty(scalar)
    scalar=16;%19
end
%Disp(‘running....‘);

%%%%%%%%%%%%%belief propagation accelerated left image is the reference%%%
rgbreference = reference;
if size( reference  3 ) == 3
    reference = rgb2gray(reference);
    target = rgb2gray(target);
end
reference = double(reference);
target = double(target);
[nrnc] = size(reference);%图像大小
Disp = zeros(nrnc);
leftgradient = zeros(nrnc);
leftgradient(:2:end) = abs(reference(:2:end)-reference(:1:nc-1));%左梯度
leftgradient = leftgradient>T;
rightgradient = zeros(nrnc);
rightgradient(:1:nc-1) = abs(reference(:1:nc-1)-reference(:2:end));%右梯度
rightgradient = rightgradient>T;
upgradient = zeros(nrnc);
upgradient(2:end:) = abs(reference(2:end:)-reference(1:nr-1:));%上梯度
upgradient = upgradient>T;
downgradient = zeros(nrnc);
downgradient(1:nr-1:) = abs(reference(1:nr-1:)-reference(2:end:));%下梯度
downgradient = downgradient>T;

%prawcost = Ad(referencetargetdmax);
prawcost=zeros(nrncdmax+1);
for d=0:dmax%d为循环变量
    prawcost(:d+1:ncd+1)=abs(reference(:d+1:nc)-target(:1:nc-d));
    for temp=1:d%图像边界处理
        prawcost(:tempd+1)=prawcost(:d+1d+1);        
    end
end

prawcost(prawcost>Truncation) = Truncation;%代价函数
prawmessage = exp(-prawcost/D);
clear reference;
clear target;

leftmessage = ones(nrncdmax+1);%从左邻域像素传递来的信息存储矩阵
rightmessage = leftmessage;%从右邻域像素传递来的信息存储矩阵
upmessa

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

     文件       9152  2013-01-26 09:54  BP_stereo.m

     文件     266605  2013-02-04 10:57  tappenIccv.pdf

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

               275757                    2


评论

共有 条评论