24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 352  |  回复: 1

pdsnj

金虫 (正式写手)

[求助] 关于图像匹配的代码--看不大懂

CODE:
function [fdsp dsp] = stereo(i1,i2, maxs)
  win_size  = 7; %-- size of window used when smoothing
  tolerance = 2; %-- how close R-L and L-R values need to be
  weight    = 5; %-- weight on gradients opposed to color
  
  %--determine pixel correspondence Right-to-Left and Left-to-Right
  [dsp1, diff1] = slide_images(i1,i2, 1, maxs, win_size, weight);
  [dsp2, diff2] = slide_images(i2,i1, -1, -maxs, win_size, weight);
  
  %--keep only high-confidence pixels
  dsp = winner_take_all(dsp1,diff1,dsp2,diff2,tolerance);
  
  %--try to eliminate bad pixesl
  fdsp = modefilt2(dsp,[win_size,win_size],2);
  
%%----- HELPER FUNCTIONS
%-- takes the best disparity when we're within tolerance
function pd = winner_take_all(d1,m1,d2,m2,tolerance,maxs)
  pixel_dsp = zeros(size(d1));               %-- initialize output
  idx1 = find(abs(d1-d2)   idx2 = find(abs(d1-d2)   pixel_dsp(idx1) = d1(idx1);                %-- fill with d1
  pixel_dsp(idx2) = d2(idx2);                %-- fill with d2
  pd = shift_image(pixel_dsp,5);             %-- shift to match i1
%-- slides images across each other to get disparity estimate
function [disparity mindiff] = slide_images(i1,i2,mins,maxs,win_size,weight)
  [dimy,dimx,c] = size(i1);
  disparity = zeros(dimy,dimx);    %-- init outputs
  mindiff = inf(dimy,dimx);   
  
  h = ones(win_size)/win_size.^2;  %-- averaging filter
  [g1x g1y g1z] = gradient(double(i1)); %-- get gradient for each image
  [g2x g2y g2z] = gradient(double(i2));
  
  step = sign((maxs-mins)/10);          %-- adjusts to reverse slide
  for i=mins:step:maxs
    s  = shift_image(i2,i);        %-- shift image and derivs
    sx = shift_image(g2x,i);
    sy = shift_image(g2y,i);
    sz = shift_image(g2z,i);
    %--CSAD  is Cost from Sum of Absolute Differences
    %--CGRAD is Cost from Gradient of Absolute Differences
    diffs = sum(abs(i1-s),3);       %-- get CSAD and CGRAD
    gdiffx = sum(abs(g1x-sx),3);
    gdiffy = sum(abs(g1y-sy),3);
    gdiffz = sum(abs(g1z-sz),3);
    gdiff = gdiffx+gdiffy+gdiffz;
   
    CSAD  = imfilter(diffs,h);
    CGRAD = imfilter(gdiff,h);
    d = CSAD+weight*CGRAD;          %-- total 'difference' score
   
    idx = find(d     disparity(idx) = abs(i);        %   into correct place in image
    mindiff(idx) = d(idx);
  end
  
%-- Shift an image
function I = shift_image(I,shift)
  dimx = size(I,2);
  if(shift > 0)
    I(:,shift:dimx,:) = I(:,1:dimx-shift+1,:);
    I(:,1:shift-1,:) = 0;
  else
    if(shift<0)  
      I(:,1:dimx+shift+1,:) = I(:,-shift:dimx,:);
      I(:,dimx+shift+1:dimx,:) = 0;
    end  
  end

代码看不大懂,请指点,具体就是上面的几个嵌套的函数i1和i2是RGB图像,maxs值为20
回复此楼
靠山山会倒,靠人人会跑,只有自己最可靠
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pdsnj

金虫 (正式写手)


xiegangmai(金币+1): 鼓励讨论交流! 2011-09-23 19:32:10
似乎懂了,[fdsp dsp] = stereo(i1,i2, maxs)是获得最后的视差图和经过滤波后的视差图。function [disparity mindiff] = slide_images(i1,i2,mins,maxs,win_size,weight) 得到每幅图的视差和梯度
靠山山会倒,靠人人会跑,只有自己最可靠
2楼2011-09-23 16:37:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 pdsnj 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 298求调剂 +6 manman511 2026-04-05 6/300 2026-04-05 09:20 by rzh123456
[考研] 材料与化工363求推荐 +7 zh096 2026-04-04 7/350 2026-04-05 09:11 by 陌秋26
[考研] 材料调剂 +18 一样YWY 2026-04-02 19/950 2026-04-04 22:14 by hemengdong
[考研] 一志愿武理材料工程302调剂环化或化工 +19 Doleres 2026-03-31 20/1000 2026-04-04 16:44 by 啊俊!
[考研] 070300化学求调剂 +16 小黄鸭宝 2026-03-30 16/800 2026-04-04 11:49 by asdhh1991
[硕博家园] 求老师收留 +9 lllq123 2026-04-03 9/450 2026-04-03 13:48 by 呼吸都是减肥
[考研] 285求调剂 +7 AZMK 2026-04-02 9/450 2026-04-03 11:12 by wanwan00
[考研] 312 化工或制药调剂 +8 小小墨123 2026-04-02 9/450 2026-04-03 09:12 by zhouxiaoyu
[考研] 260求调剂 +3 朱芷琳 2026-04-02 3/150 2026-04-03 08:44 by yulian1987
[考研] 考研调剂 +3 李木子0120 2026-04-02 5/250 2026-04-02 21:45 by dongzh2009
[考研] 311求调剂 +14 蓝月亮亮 2026-03-30 14/700 2026-04-02 12:18 by 1753564080
[考研] 085900土木水利336分求调剂 +4 Zhangjiangj 2026-03-31 6/300 2026-04-02 11:40 by 1753564080
[考研] 272求调剂,接受跨专业调剂! +4 闲鱼卢 2026-03-31 4/200 2026-04-02 11:18 by guyan1000
[考研] 0710生物学,325求调剂 +3 mkkkkkl 2026-04-01 3/150 2026-04-02 09:48 by Jaylen.
[考研] 材料求调剂 +10 呢呢妮妮 2026-04-01 13/650 2026-04-02 09:17 by olim
[考研] 材料调剂 +12 一样YWY 2026-04-01 12/600 2026-04-02 00:21 by 百秒光年
[考研] 298求调剂 +4 什么是胖头鱼 2026-03-30 6/300 2026-04-01 22:06 by 客尔美德
[考研] 279求调剂 +7 莫xiao 2026-04-01 7/350 2026-04-01 22:05 by 客尔美德
[考研] 290求调剂 +5 dfffsar 2026-03-29 5/250 2026-04-01 19:45 by 6781022
[考研] 318求调剂 +10 陈晨79 2026-03-30 10/500 2026-03-31 17:37 by 544594351
信息提示
请填处理意见