python-opencv-图像的平移

图像平移的基本概念 

图像平移指的是将图像按水平方向或竖直方向上进行移动,其本质就是将图像中的所有像素点都按照给定的平移量进行水平方向或竖直方向上的移动。

例如,我们将图像在水平方向上平移w,在竖直方向上平移h,那么图像中初始坐标为(x.y)的像素点在经过平移后对应的坐标就变成了(x+w,y+h)。

import numpy as np
import cv2

img = cv2.imread("3.jpg")
cv2.imshow("yuan", img)
img_info=img.shape
height=img_info[0]
width=img_info[1]

mat_translation=np.float32([[1,0,20],[0,1,50]])  #变换矩阵:设置平移变换所需的计算矩阵:2行3列
#[[1,0,20],[0,1,50]]   表示平移变换:其中20表示水平方向上的平移距离,50表示竖直方向上的平移距离。
dst=cv2.warpAffine(img,mat_translation,(width+20,height+50))  #变换函数
'''
参数2 变换矩阵:是一个2行3列的矩阵,由这个矩阵决定是何种变换
参数3 变换后输出图像的大小:(width+20,height+50)-->宽和高(自己规定)
参数4 可选参数,用于设置插值方法的组合,默认为INTER_LINEAR使用线性插值算法,除了图像缩放中用到的几个插值算法外,仿射变换还可以选用
INTER_LANCZOS4(Lanczos插值算法)。
参数5 borderValue:可选参数,在边界不变的情况下可以使用的值,主要用于设置边界的填充值,默认为0
'''
cv2.imshow('dst',dst)


cv2.waitKey(0)

效果图

 

 

 

 

 

posted @ 2020-01-19 14:23  天子骄龙  阅读(6083)  评论(0编辑  收藏  举报