放射变换–图像翻转
import cv2
import numpy as np
img1_path = "./108.jpg"
img1 = cv2.imread(img1_path)
img = cv2.flip(img1,-1)
img1 = img1[::4,::4,::,-1]
img0 = cv2.rotate(img1,cv2.ROTATE_90_CLOCKWISE)
cv2.imshow("img",img0)
cv2.waitKey(0)
cv2.destroyAllWindows()
平移
import cv2
import numpy as np
img0_path = "./R-C.jpg"
img0 = cv2.imread(img0_path)
M = np.float32([(1,0,200),(0,1,0)])
img = cv2.warpAffine(img0,M,(img0.shape[1],img0.shape[0]))
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
获取变换矩阵
import cv2
import numpy as np
img0_path = "./R-C.jpg"
img0 = cv2.imread(img0_path)
h,w,c = img0.shape
M = cv2.getRotationMatrix2D((100,100),15,1)
img2 = cv2.warpAffine(img0,M,(w,h))
src = np.float32([(50,30),(800,500),(200,300)])
dst = np.float32([(500,300),(80,50),(20,30)])
M = cv2.getAffineTransform(src,dst)
img = cv2.warpAffine(img0,M,(w,h))
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
透视变换
import cv2
import numpy as np
img_path = "./123.jpg"
img = cv2.imread(img_path)
src = np.float32([(300,300),(1100,300),(1500,400),(1100,1500)])
dst = np.float32([(0,0),(1300,0),(0,1400),(1300,1400)])
M = cv2.getPerspectiveTransform(src,dst)
img = cv2.warpPerspective(img,M,(1300,1400))
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()