首页 > 编程笔记 > Python笔记 阅读:3

OpenCV warpAffine():实现图像平移(附带实例)

我们知道,图像是由像素组成的,像素的集合相当于一个二维的矩阵,每一个像素都有一个“位置”,也就是每个像素都有一个坐标。

图像平移是将一幅图像中所有的点都按照指定的平移量在水平、垂直方向移动。平移后的图像上的每一点都可以在原图像中找到对应的点。

平移变换分为两种:
有了 OpenCV 后,平移图像就不需要如此麻烦了,因为 OpenCV 提供了函数 warpAffine(),该函数使用指定的矩阵变换原图像,其声明如下:
warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst
各个参数的含义如下:
【实例】实现图像平移。
import numpy as np
import cv2 as cv

img = cv.imread(r'test.jpg', 1)
rows, cols, channels = img.shape
M = np.float32([[1,0,100],[0,1,50]])
res = cv.warpAffine(img, M, (cols, rows))

cv.imshow('img', res)
cv.waitKey(0)
cv.destroyAllWindows()
warpAffine() 的第 3 个参数为输出的图像大小,该参数的形式为 (width, height)。

运行工程,结果如下图所示:

相关文章