• 大小: 4.76MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-15
  • 语言: Matlab
  • 标签: 运动估计  

资源简介

给出了几种快速运动估计的算法,包括三步搜索法,四步搜索法等。

资源截图

代码片段和文件信息

% 使用自适应路径搜索法计算运动向量(Adaptive Rood Pattern Search)
%
% 输入
%   imgP : 原图像
%   imgI : 参考图像
%   mbSize : 宏块大小
%   p : 搜索参数
%
% 输出
%   motionVect : 原图像的运动向量
%   ARPScomputations: 宏块搜索点的平均数


function [motionVect ARPScomputations] = ARPS(imgP imgI mbSize p)

[row col] = size(imgI);

vectors = zeros(2row*col/mbSize^2);
costs = ones(1 6) * 65537;

% 小钻石搜索图样的格点
SDSP(1:) = [ 0 -1];    %            
SDSP(2:) = [-1  0];    %              1
SDSP(3:) = [ 0  0];    %           2  3  4
SDSP(4:) = [ 1  0];    %              5
SDSP(5:) = [ 0  1];    %

% 我们将会在一个初始为零的检验矩阵中标记除已完成检验的点的位置,并且标志为1

checkMatrix = zeros(2*p+12*p+1);

computations = 0;

% 从图像左上角开始
% 以宏块边长为单位步长
% 在每个宏块的上下左右四个方向上,寻找其最吻合的分块

mbCount = 1;
for i = 1 : mbSize : row-mbSize+1
    for j = 1 : mbSize : col-mbSize+1
        
        % 自适应路径搜索法(ARPS)从这里开始
        
        x = j;
        y = i;
        
        costs(3) = costFuncMAD(imgP(i:i+mbSize-1j:j+mbSize-1) ...
                                    imgI(i:i+mbSize-1j:j+mbSize-1)mbSize);
        
        checkMatrix(p+1p+1) = 1;
        computations =  computations + 1;
        
        % 如果在最左边一列,则进行大菱形搜索LDSP(步长为2)
        if (j-1 < 1)
            stepSize = 2;
            maxIndex = 5;
        else
            stepSize = max(abs(vectors(1mbCount-1)) abs(vectors(2mbCount-1)));
            
            % 如果运动矢量指向的点为大菱形图样上面的点,无需重复计算
            if ( (abs(vectors(1mbCount-1)) == stepSize && vectors(2mbCount-1) == 0) ...
                 || (abs(vectors(2mbCount-1)) == stepSize && vectors(1mbCount-1) == 0)) ...
                 
                maxIndex = 5; % 只需检查路径上的5个点
                
            else
                maxIndex = 6; % 检查路径上的6个点
                LDSP(6:) = [ vectors(2 mbCount-1)  vectors(1 mbCount-1)];
            end
        end
        
        % 一开始只能用大菱形搜索
        
        LDSP(1:) = [ 0 -stepSize];
        LDSP(2:) = [-stepSize 0]; 
        LDSP(3:) = [ 0  0];
        LDSP(4:) = [stepSize  0];
        LDSP(5:) = [ 0  stepSize];
        
        for k = 1:maxIndex
            refBlkVer = y + LDSP(k2);   % 行
            refBlkHor = x + LDSP(k1);   % 列
            if ( refBlkVer < 1 || refBlkVer+mbSize-1 > row ...
                 || refBlkHor < 1 || refBlkHor+mbSize-1 > col)
             
                continue; % 超出图像边界
            end
            
            if (k == 3 || stepSize == 0)
                continue; % 已计算中心点
            end
            costs(k) = costFuncMAD(imgP(i:i+mbSize-1j:j+mbSize-1) ...
                  imgI(refBlkVer:refBlkVer+mbSize-1 refBlkHor:refBlkHor+mbSize-1) mbSize);
            computations =  computations + 1;
            checkMatrix(LDSP(k2) + p+1 LDSP(k1) + p+1) = 1;

        end

        [cost point] = min(costs);
        
        % 如果最小值为菱形的中心点,则doneFlag置1

        x = x + LDSP(point 1);
        y = y + LDSP(point 2);
        costs = ones(15) * 655

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

     文件       5213  2010-07-22 17:14  运动估计基本算法\ARPS.m

     文件        519  2004-04-25 21:46  运动估计基本算法\costFuncMAD.m

     文件      18418  2010-07-22 17:14  运动估计基本算法\DS.m

     文件       5573  2010-07-20 11:30  运动估计基本算法\FourSS.m

     文件       1798  2010-07-11 20:24  运动估计基本算法\FullSearch.m

     文件        487  2010-07-07 12:45  运动估计基本算法\imgPSNR.m

     文件       3033  2010-07-22 17:13  运动估计基本算法\main.m

     文件        700  2004-04-14 22:25  运动估计基本算法\minCost.m

     文件       1094  2004-04-10 14:09  运动估计基本算法\motionComp.m

     文件       8129  2010-07-17 20:23  运动估计基本算法\NewTSS.m

     文件      10924  2010-07-20 11:30  运动估计基本算法\SESTSS.m

     文件       2767  2010-07-20 11:18  运动估计基本算法\ThreeStepSearch.m

     文件        865  2010-07-22 18:12  运动估计基本算法\必读.txt

     文件     122444  2005-10-20 12:51  运动估计基本算法\运动估计块匹配算法(英文原版).PDF

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car000.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car001.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car002.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car003.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car004.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car005.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car006.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car007.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car008.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car009.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car010.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car011.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car012.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car013.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car014.bmp

     文件      77878  2010-07-07 12:59  运动估计基本算法\car\car015.bmp

............此处省略90个文件信息

评论

共有 条评论