OpenCV 仿射变换
代码及相关注释如下:
# -*- coding: utf-8 -*-
# @Time : 2021/8/3
# @Author : ZYh
"""
Introduction:
仿射变换(平移,旋转,倾斜):
dst = cv2.warpAffine(src, M, dsize, flags, borderMode, borderValue)
参数:
M->一个2行3列的矩阵,根据此矩阵的值变换原图中像素的位置
M又叫做仿射矩阵,实际上是2×3的列表,格式如下:
M = [[a, b, c], [d, e, f]]
图像作何种变化,完全取决于M的值,公式如下:
新x = 原x * a + 原y * b + c
新y = 原x * d + 原y * e + f
dsize->输出图像的尺寸大小
flags->可选参数,插值方式, 建议使用默认值
borderMode->可选参数,边界类型,建议使用默认值
borderValue->可选参数,边界值,默认为0,建议使用边界值
"""
import cv2 as cv
import numpy as np
img = cv.imread('demo.png')
rows = len(img) # 获取图像像素行数
cols = len(img[0]) # 获取图像像素列数
# M矩阵种的数字采用32为浮点格式,可采用如下两种方式创建M
# 方式一(创建一个全是0的M):
# M = np.zeros((2, 3), np.float32)
# 方式二:创建同时赋值
# M = np.float32([1, 2, 3], [4, 5, 6])
#############################################################################