python CV学习2:几何变换

1 简介

  • 了解几何变换的概念与应用

  • 理解平移、旋转的原理

  • 掌握在OpenCV框架下实现平移、旋转操作

2 算法理论介绍

该部分将对基本的几何变换进行学习,几何变换的原理大多都是相似,只是变换矩阵不同,因此,我们以最常用的平移和旋转为例进行学习。在深度学习领域,我们常用平移、旋转、镜像等操作进行数据增广

3 图形的平移

平移之前,我们需要先构造一个移动矩阵,所谓移动矩阵,就是让说明白在x轴方向上移动多少距离,在y轴上移动多少距离。通过numpy来构造这个矩阵,并将其传给仿射函数cv2.warpAffine( )

img = cv2.imread('./src/cat.jpg')
# 构造移动矩阵H
# 在x轴方向移动多少距离,在y轴方向移动多少距离
H = np.float32([[1, 0, 50], [0, 1, 25]])
rows, cols = img.shape[:2]
print(img.shape)
print(rows, cols)
res = cv2.warpAffine(img, H, (cols, rows))  # 注意这里rows和cols需要反置
cv2.imshow('origin_picture', img)
cv2.imshow('new_picture', res)
cv2.waitKey(0)

 3 图形的旋转

对于图像的旋转,我们需要构造旋转矩阵。一般的图像的旋转矩阵是在原点处进行变换的

img = cv2.imread('./src/cat.jpg')
rows, cols = img.shape[:2]
# 第一个参数是旋转中心,第二个参数是旋转角度,第三个参数是缩放比例
M3 = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)

res3 = cv2.warpAffine(img, M3, (cols, rows))

cv2.imshow('res3', res3)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值