函数 cv2.getRotationMatrix2D((cols/2,rows/2),45,0.6)
第一个参数——原图像旋转中心
第二个参数——以度为单位的旋转角度。正值表示逆时针旋转
第三个参数—— 各向同性的比例因子。
函数输出——仿射变换,2x3浮点矩阵
函数cv2.warpAffine(img,M,(2*cols,2*rows))
第一个参数——原图像
第二个参数——2x3仿射变换矩阵
第三个参数——生成图像的大小
函数cv2.getAffineTransform(pts1,pts2)
第一个参数——原图像中三角形的顶点坐标
第二个参数——变换后图像中三角形的顶点坐标
函数输出——两个坐标的变换矩阵
图像旋转
import cv2
import numpy as np
img = cv2.imread('test.jpg',0)
rows,cols = img.shape
M = cv2.getRotationMatrix2D((cols/2,rows/2),45,0.6)
dst = cv2.warpAffine(img,M,(2*cols,2*rows))
while(1):
cv2.imshow('img',dst)
if cv2.waitKey(1)&0xFF == 27:
break
cv2.destroyAllWindows()
图像放射变换
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('test.jpg')
rows,cols,ch = img.shape
pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[10,100],[200,50],[100,250]])
M = cv2.getAffineTransform(pts1,pts2)
dst = cv2.warpAffine(img,M,(cols,rows))
plt.subplot(121)
plt.imshow(img)
plt.title('input')
plt.subplot(122)
plt.title('output')
plt.imshow(dst)
plt.show()
图像透视变换
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('img_wlk.jpg')
rows,cols,ch = img.shape
pts1 = np.float32([[56,65],[368,52],[28,387],[389,398]])
pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]])
M = cv2.getPerspectiveTransform(pts1,pts2)
dst = cv2.warpPerspective(img,M,(300,300))
plt.subplot(121)
plt.imshow(img)
plt.title('input')
plt.subplot(122)
plt.title('output')
plt.imshow(dst)
plt.show()