python 简单图像处理(3) 平移

平移是最简单的一种变换,是将一幅图像上的所有点都被按照给定的偏移量在水平方向沿X轴、在垂直方向沿y轴移动

其变换公式是



可用矩阵变换公式

逆变换方法是

若移动后大小不变

当多余部分填充为黑色时

平移结果为

当多余部分为白色时

平移结果为

若移动后图像尺寸变大

则平移结果为

 

好了,我们用OpenCV实现上面的运算

 
  
import cv

image
= cv.LoadImage( ' lena.jpg ' , 1 )
x
= 20
y
= 30
size
= (image.width,image.height)
size2
= (image.width + y , image.height + x)
iTr1
= cv.CreateImage(size,image.depth,image.nChannels)
iTr2
= cv.CreateImage(size,image.depth,image.nChannels)
iTr3
= cv.CreateImage(size2,image.depth,image.nChannels)
h
= image.height
w
= image.width
for i in range(h):
for j in range(w):
iTr3[i
+ x,j + y] = image[i,j]
if i >= x and j >= y:
iTr1[i,j]
= image[i - x,j - y]
iTr2[i,j]
= image[i - x,j - y]
else :
iTr1[i,j]
= (0,0,0)
iTr2[i,j]
= ( 255 , 255 , 255 )

cv.ShowImage(
' image ' ,image)
cv.ShowImage(
' iTr1 ' ,iTr1)
cv.ShowImage(
' iTr2 ' ,iTr2)
cv.ShowImage(
' iTr3 ' ,iTr3)
cv.WaitKey(0)

 

我们来看运行结果

 

 

可以看出对于iTr3,我们没有对多余部分进行处理,显示的颜色是黑色

所以在CreateImage函数创建一副图的时候,若不进行处理。是一副黑色的图像

即每个像素点都是0或是tuple(0,0,0)

好啦。图像的平移就是这样啦

转载于:https://www.cnblogs.com/xianglan/archive/2010/12/26/1917070.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值