仿射变换:是图像旋转、缩放、平移的总称
反射API:warpAffine(src,M,dsize,flags,mode,value)
src:是对哪个图像进行仿射变换,图像的名称
M:变换矩阵
dsize:输出尺寸大小
flags:与resize中插值算法一致,了解一下就行
mode:边界外推法的标志(可以省略)
value:填充边界的值(可省略)
平移矩阵:
矩阵中的每个像素有(x,y)组成,因此,变换矩阵是2*2的矩阵,平移向量为2*1的向量,所在平移矩阵为2*3的矩阵
#图像的仿射变换:图像旋转、缩放、平移的总和
#函数:warpAffine(src,M,dsize,flags,mode,value)
import cv2 as cv
import numpy as np
img=cv.imdecode(np.fromfile(r'(图片路径)',dtype=np.uint8),1)
h,w,ch=img.shape
M=np.float32([[1,0,100],[0,1,0]])#横向平移,如果向上平移的话,y值改成100,x值改成0
result=cv.warpAffine(img,M,(w,h))
cv.imshow('result',result)
cv.imshow('img',img)
cv.waitKey(0)
变换矩阵:getRotationMatrix2D(center,angle,scale)
center:中心点
angle:图片逆时针旋转多大的角度
scale:图片的缩放比例
#图像的仿射变换:图像旋转、缩放、平移的总和
#函数:warpAffine(src,M,dsize,flags,mode,value)
img=cv.imdecode(np.fromfile(r'图片的绝对路径',dtype=np.uint8),1)
h,w,ch=img.shape
#M=np.float32([[1,0,100],[0,1,0]])
#旋转的角度为逆时针
M=cv.getRotationMatrix2D((100,100),15,1.0)
result=cv.warpAffine(img,M,(w,h))
cv.imshow('result',result)
cv.imshow('img',img)
cv.waitKey(0)