图像缩放 resize
import cv2
import numpy as npdog = cv2.imread('img/dog.jpg')
# new = cv2.resize(dog, (300, 300))
new = cv2.resize(dog, None, fx=2, fy=2, interpolation=cv2.INTER_AREA)cv2.imshow('dog', dog)
cv2.imshow('new', new)
cv2.waitKey(0)
图像翻转 flip
import cv2
import numpy as npdog = cv2.imread('img/dog.jpg')
new1 = cv2.flip(dog, 0)
new2 = cv2.flip(dog, 1)
new3 = cv2.flip(dog, -1)cv2.imshow('dog', dog)
cv2.imshow('==0 上下', new1)
cv2.imshow('> 0 左右', new2)
cv2.imshow('< 0 上下+左右', new3)
cv2.waitKey(0)
图像旋转 rotate
import cv2
import numpy as npdog = cv2.imread('img/dog.jpg')
new1 = cv2.rotate(dog, cv2.ROTATE_90_CLOCKWISE)
new2 = cv2.rotate(dog, cv2.ROTATE_180)
new3 = cv2.rotate(dog, cv2.ROTATE_90_COUNTERCLOCKWISE)cv2.imshow('dog', dog)
cv2.imshow('new1', new1)
cv2.imshow('new2', new2)
cv2.imshow('new3', new3)
cv2.waitKey(0)
仿射变换 warpAffine
缩放、平移、旋转的总称
平移
import cv2
import numpy as npdog = cv2.imread('img/dog.jpg')
h, w, ch = dog.shape
M = np.float32([[1,0, 50], [0, 1, 0]])
new1 = cv2.warpAffine(dog, M, (w, h))cv2.imshow('dog', dog)
cv2.imshow('new1', new1)cv2.waitKey(0)
变换矩阵 getRotationMatrix2D
import cv2
import numpy as npdog = cv2.imread('img/dog.jpg')
h, w, ch = dog.shape
# 旋转中心
# 旋转角度
# 缩放比例
M = cv2.getRotationMatrix2D((w/2, h/2), 15, 1.0)
new1 = cv2.warpAffine(dog, M, (w, h))cv2.imshow('dog', dog)
cv2.imshow('new1', new1)cv2.waitKey(0)
变换矩阵 getAffineTransform
import cv2
import numpy as npdog = cv2.imread('img/dog.jpg')
h, w, ch = dog.shapesrc = np.float32([[30, 30], [30, 90], [90, 30]])
dst = np.float32([[40, 50], [60, 30], [10, 50]])M = cv2.getAffineTransform(src, dst)
new1 = cv2.warpAffine(dog, M, (w, h))cv2.imshow('dog', dog)
cv2.imshow('new1', new1)cv2.waitKey(0)
透视变换 warpPerspective
import cv2
import numpy as npdog = cv2.imread('img/dog.jpg')
h, w, ch = dog.shapesrc = np.float32([[30, 30], [30, 90], [90, 30], [90, 90]])
dst = np.float32([[0, 0], [0, w/2], [h/3, 0], [w, h]])M = cv2.getPerspectiveTransform(src, dst)
new1 = cv2.warpPerspective(dog, M, (w, h))cv2.imshow('dog', dog)
cv2.imshow('new1', new1)cv2.waitKey(0)