zhang-xiao

MATLAB 图像平移操作(转)

function outImage=immove(inImage,Tx,Ty)
[m, n] = size(inImage);
Tx=fix(Tx);
Ty=fix(Ty);

%move x
if (Tx<0)
inImage=imcrop(inImage,[abs(Tx),1,m-abs(Tx),n]);
[m, n] = size(inImage);
Tx=0; 
end

%move y
if (Ty<0)
inImage=imcrop(inImage,[1,abs(Ty),m,n-abs(Ty)]);
[m, n] = size(inImage);
Ty=0; 
end

outImage = zeros(m+Ty, n+Tx);
outImage(1+Ty:m+Ty,1+Tx:n+Tx) = inImage;

另外,用translate函数也可以实现以上功能:
I = imread(\'cameraman.tif\');
se = translate(strel(1), [25 25]);
J = imdilate(I,se);
imshow(I), title(\'Original\')
figure, imshow(J), title(\'Translated\');
但是它始终保持原图像大小,当图像向右下移动时,有部分图像被剪切掉了。  

分类:

技术点:

相关文章:

  • 2022-12-27
  • 2021-10-23
  • 2022-01-07
  • 2022-01-07
  • 2022-01-13
  • 2021-06-03
  • 2022-12-23
猜你喜欢
  • 2022-01-07
  • 2021-11-23
  • 2021-11-23
  • 2021-11-28
  • 2021-05-26
相关资源
相似解决方案