opencv+python实现图像仿射变换(注释全)

用的是cv2.getAffineTransform这个函数实现

在这里插入代码片
from matplotlib import pyplot as plt
import cv2
import numpy as np

img=cv2.imread('E:/cat.jpg')  #路径名中不能有中文,会出错
s=img.size
print(img.shape)  #输出三维向量(500,500,3)

p1 = np.float32([[50,50],[200,50],[50,200]])                 #变换前
p2 = np.float32([[60,40],[210,40],[60,150]])                 #变换后,相当于平移,可以通过坐标平移,放缩,旋转图像
#p1 = np.array([[50,50],[200,50],[50,200]],np.float32)       #也可以写成这种形式,生成float类型数组
#p2 = np.array([[10,100],[200,20],[100,250]],np.float32)
transform = cv2.getAffineTransform(p1,p2)                            #从位置1放射变换到位置2

res = cv2.warpAffine(img,transform,(500,500))  #将img图像通过M坐标变换为图像res,变换后的图像大小为500*500(坐标轴大小)
plt.subplot(121)                                #subplot为matplotlib.pyplot中的函数#三个参数,分别代表子图的行数,列数,图索引号。
plt.imshow(img[:,:,::-1])                       #image表示待处
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值