17.放射变化之获取变换矩阵
之前在放射变化之图像平移有一个变化矩阵M,之前我们是自定义的,cv2里面也给我们定义了API
M = cv2.getRotationMatrix2D(center,angle,scale)
img = cv2.warpAffine(img,M,dsize,flags,mode,value)
1 | #!/usr/bin/env python |
M = cv2.getAffineTransform(src[],des[])
- src原目标的三个点
- dst对应变换后的三个点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Opencv学习
@File :放射变化之获取变换矩阵.py
@IDE :PyCharm
@Author :咋
@Date :2023/1/13 18:33
"""
import cv2
import numpy as np
image = cv2.imread("Handsome.jpg")
image = cv2.resize(image,(640,480))
# 由API计算M
# M = cv2.getRotationMatrix2D((240,320),30,1)
# 由三个点计算M
# 必须是32的整数
src = np.float32([[200,100],[300,100],[200,300]])
des = np.float32([[100,150],[360,200],[280,120]])
M = cv2.getAffineTransform(src,des)
# 进行图像变化
warp_img = cv2.warpAffine(image,M,dsize = (640,480)) # dsize 是输出图像的大小
cv2.imshow("rotate_img",np.hstack((image,warp_img)))
cv2.waitKey(0)
cv2.destroyAllWindows()
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咋的个人博客!