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

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

其变换公式是

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

可用矩阵变换公式

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

逆变换方法是

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

若移动后大小不变

当多余部分填充为黑色时

平移结果为

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

当多余部分为白色时

平移结果为

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

若移动后图像尺寸变大

则平移结果为

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

 

好了,我们用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)

 

我们来看运行结果

 

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

 

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

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

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

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

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