仿射变换包含了平移、旋转、缩放等操作,其主要特点是:原图像中的所有平行线在转换后的图像中仍然平行。OpenCV的cv2.warpAffine()函数用于实现图像的仿射变换,其基本格式如下。
dst=cv2.warpAffine(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])
参数说明如下。
dst表示转换后的图像,图像类型和原图像一致,大小由dsize决定。
src表示原图像。
M是一个大小为2×3的转换矩阵,使用不同的转换矩阵可实现平移、旋转等多种操作。
dsize为转换后的图像大小。
flags为插值方式,默认值为cv2.INTER_LINEAR。
borderMode为边类型,默认值为cv2.BORDER_CONSTANT。
borderValue为边界值,默认为0。
在cv2.warpAffine()函数省略可选参数时,图像转换的矩阵运算公式如下。
dst(x,y)=src(M11x+M12y+M13,M21x+M22y+M23)