▼页尾

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)

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

posted @ 2010-12-26 09:52  xiatwhu  阅读(9313)  评论(0编辑  收藏  举报
▲页首
西