motionComp.m
上传用户:cxsjwj
上传日期:2022-08-09
资源大小:34k
文件大小:1k
源码类别:

matlab例程

开发平台:

Matlab

  1. % Computes motion compensated image using the given motion vectors
  2. %
  3. % Input
  4. %   imgI : The reference image 
  5. %   motionVect : The motion vectors
  6. %   mbSize : Size of the macroblock
  7. %
  8. % Ouput
  9. %   imgComp : The motion compensated image
  10. %
  11. % Written by Aroh Barjatya
  12. function imgComp = motionComp(imgI, motionVect, mbSize)
  13. [row col] = size(imgI);
  14. % we start off from the top left of the image
  15. % we will walk in steps of mbSize
  16. % for every marcoblock that we look at we will read the motion vector
  17. % and put that macroblock from refernce image in the compensated image
  18. mbCount = 1;
  19. for i = 1:mbSize:row-mbSize+1
  20.     for j = 1:mbSize:col-mbSize+1
  21.         
  22.         % dy is row(vertical) index
  23.         % dx is col(horizontal) index
  24.         % this means we are scanning in order
  25.         
  26.         dy = motionVect(1,mbCount);
  27.         dx = motionVect(2,mbCount);
  28.         refBlkVer = i + dy;
  29.         refBlkHor = j + dx;
  30.         imageComp(i:i+mbSize-1,j:j+mbSize-1) = imgI(refBlkVer:refBlkVer+mbSize-1, refBlkHor:refBlkHor+mbSize-1);
  31.     
  32.         mbCount = mbCount + 1;
  33.     end
  34. end
  35. imgComp = imageComp;