24小时热门版块排行榜    

查看: 465  |  回复: 1

shawmarkk

银虫 (初入文坛)

[求助] 求助用于电子稳像的灰度投影算法源码 已有1人参与

求助用于电子稳像的灰度投影算法源码!急急急!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

沧海逍遥

铁虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
shawmarkk: 金币+200, ★★★★★最佳答案 2015-07-06 18:14:05
%投影法,投影修正,余弦滤波
%水平方向最大偏移正负20个象素
%垂直方向最大偏移正负30个象素
clear all
mov=aviread('v2.avi');   


g=[];

for t=50:80
    mov(t).cdata=rgb2gray(mov(t).cdata);
  
    g=cat(3,g,mov(t).cdata);
end  

gr=[];
gr=cat(3,gr,g(:,:,1));

frow=30;
fcol=20;
  
referenceframe=g(:,:,1);
refprojrow=zeros(240,1);
refprojcol=zeros(1,320);

%行投影
refprojrowsum=0;
for i=1:240
    for j=1:320
        refprojrow(i)=refprojrow(i)+double(referenceframe(i,j));
      
    end  
    refprojrowsum=refprojrowsum+refprojrow(i);
end  
refprojrowmean=refprojrowsum/240;
refprojrow=refprojrow-refprojrowmean;

figure;plot(refprojrow);


for i=1:240
    if (i240-frow)  
       refprojrow(i)=refprojrow(i)*(1+cos(pi*(frow-1-i)/frow))/2;
   end
end
     
hold on
plot(refprojrow,'r');
     
     
%列投影
refprojcolsum=0;
for j=1:320
   for i=1:240
        refprojcol(j)=refprojcol(j)+double(referenceframe(i,j));
      
    end  
    refprojcolsum=refprojcolsum+refprojcol(j);
end  
refprojcolmean=refprojcolsum/320
refprojcol=refprojcol-refprojcolmean;
figure;plot(refprojcol);

for j=1:320
    if (j240-fcol)  
       refprojcol(j)=refprojcol(j)*(1+cos(pi*(fcol-1-j)/fcol))/2;
   end
end
hold on ; plot(refprojcol,'r');

for t=2:20
    t
     
currentframe=g(:,:,t);

%行投影
curprojrow=zeros(240,1);
curprojrowsum=0;

for i=1:240
    for j=1:320
        %refprojrow(i)=refprojrow(i)+double(referenceframe(i,j));
        curprojrow(i)=curprojrow(i)+double( currentframe(i,j));
    end  
    curprojrowsum=curprojrowsum+curprojrow(i);
end  
curprojrowmean=curprojrowsum/240;
curprojrow=curprojrow-curprojrowmean;


for i=1:240
    if (i240-frow)  
       curprojrow(i)=curprojrow(i)*(1+cos(pi*(frow-1-i)/frow))/2;
   end
end

%figure;plot(refprojrow);hold on  
%plot(curprojrow,'r');xlabel('行投影')
%180单位的相关运算   %垂直方向最大偏移正负30个象素
cr=zeros(1,61);
for j=1:61
    for i=1:180
       cr(j)=cr(j)+(refprojrow(j+i-1)-curprojrow(30+i))^2;
    end
end

%figure;plot(cr,'g'); xlabel('垂直方向')

[b,jmin]=min(cr);
dy=31-jmin

%列投影
curprojcol=zeros(1,320);
curprojcolsum=0;

for j=1:320
   for i=1:240
        %refprojcol(j)=refprojcol(j)+double(referenceframe(i,j));
        curprojcol(j)=curprojcol(j)+double(currentframe(i,j));
    end  
    curprojcolsum=curprojcolsum+curprojcol(j);
end  
curprojcolmean=curprojcolsum/320;
curprojcol=curprojcol-curprojcolmean;


for j=1:320
    if (j240-fcol)  
       curprojcol(j)=curprojcol(j)*(1+cos(pi*(fcol-1-j)/fcol))/2;
   end
end

%figure;plot(refprojcol);hold on;
%plot(curprojcol,'r');   xlabel('列投影')

%水平方向最大偏移正负20个象素
%280单位的相关运算
cc=zeros(1,41);
for i=1:41
    for j=1:280
      cc(i)=cc(i)+(refprojcol(j+i-1)-curprojcol(20+j))^2;
    end
end

%figure;plot(cc,'g');   xlabel('水平方向')

[a,imin]=min(cc);
dx=21-imin

if dy<0
    %dy<0,图currentframe相对于referenceframe向上运动了|dy|
    a=zeros(abs(dy),320);
   guoduframe=[a;currentframe(1:240-abs(dy),];
elseif dy>0
    %dy>0,图currentframe相对于referenceframe向下运动了|dy|,
    a=zeros(dy,320);
    guoduframe=[currentframe(1+abs(dy):240,;a];
else
     guoduframe=currentframe;
end


     
if dx<0
   %dx<0,图currentframe相对于referenceframe向左运动了|dx|  
    c=zeros(240,abs(dx));
    buchangframe=[c,guoduframe(:,1:320-abs(dx))];  
elseif dx>0
    %dx>0,图currentframe相对于referenceframe向右运动了|dx|
    c=zeros(240,dx);
    buchangframe=[guoduframe(:,abs(dx)+1:320),c];
else
    buchangframe=guoduframe;
end
  
%figure;imshow(buchangframe);
gr=cat(3,gr,buchangframe);

  %referenceframe=buchangframe;
  %refprojrow=curprojrow;
  %refprojcol=curprojcol;
end
2楼2015-07-06 14:59:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 shawmarkk 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] FileCode能看出啥? +7 要乐观耀哥 2026-08-10 17/850 2026-08-11 10:50 by 要乐观耀哥
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +5 布布和一二 2026-08-10 6/300 2026-08-11 10:15 by 医学老男孩
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +15 Lanmanbaby 2026-08-09 23/1150 2026-08-11 09:51 by demonstreets
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +8 家与远方 2026-08-10 13/650 2026-08-11 09:49 by 家与远方
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +6 Tide man 2026-08-10 6/300 2026-08-11 09:45 by tangmnt
[基金申请] 关于代码变化问题,想知道的进来 +17 且听虎啸 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[基金申请] 静等基金结果 +5 gjjjzhong 2026-08-10 16/800 2026-08-10 17:19 by Tide man
[基金申请] 关于Filecode分析方法 +3 majunge000 2026-08-10 3/150 2026-08-10 15:46 by lch2012
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 8月时间戳变的,举个手。玩一下,释放压力 +11 archvillain 2026-08-04 13/650 2026-08-10 14:41 by seekfind
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 化学口download_prp&amp;fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
信息提示
请填处理意见