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');
但是它始终保持原图像大小,当图像向右下移动时,有部分图像被剪切掉了。  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值