M=numpy.float32([[1,0,x],[0,1,y]])
import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('b.jpg')
#向上平移
M1=np.float32([[1,0,0],[0,1,50]])
#向下平移
M2=np.float32([[1,0,0],[0,1,-50]])
#向左平移
M3=np.float32([[1,0,50],[0,1,0]])
#向右平移
M4=np.float32([[1,0,-50],[0,1,0]])
col,row=img.shape[:2]
r1=cv2.warpAffine(img,M1,(col,row))
r2=cv2.warpAffine(img,M2,(col,row))
r3=cv2.warpAffine(img,M3,(col,row))
r4=cv2.warpAffine(img,M4,(col,row))
titles=['i1','i2','i3','i4']
images=[r1,r2,r3,r4]
for i in range(4):
plt.subplot(2,2,i+1)
plt.imshow(images[i])
plt.title(titles[i])
#不展示x、y轴
plt.xticks([])
plt.yticks([])
plt.show()
cv2.resize(src,dsize,…)
import cv2
import numpy as np
img=cv2.imread('b.jpg')
#图像缩放的多种方式
r1=cv2.resize(img,(100,100))
r2=cv2.resize(img,None,fx=0.5,fy=0.5)
r3=cv2.resize(img,(int(img.shape[0]*0.8),int(img.shape[1]*0.4)))
cv2.imshow('r1',r1)
cv2.imshow('r2',r2)
cv2.imshow('r3',r3)
cv2.waitKey(0)
cv2.destoryAllWindows()
M=cv2.getRotationMatrix2D(center,angle,scale)
import cv2
import numpy as np
img=cv2.imread('b.jpg')
M=cv2.getRotationMatrix2D(img.shape[:2],30,0.6)
result=cv2.warpAffine(img,M,img.shape[:2])
cv2.imshow('img',img)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()
cv2.flip(src,flipCode)
import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('a.jpg')
#参数=0,以X轴为对称轴翻转
r1=cv2.flip(img,0)
#参数=1,以Y轴为对称轴翻转
r2=cv2.flip(img,1)
#参数<0,以X轴和Y轴为对称轴翻转
r3=cv2.flip(img,-1)
titles=['img','r1','r2','r3']
images=[img,r1,r2,r3]
for i in range(4):
plt.subplot(2,2,i+1)
plt.imshow(images[i])
plt.title(titles[i])
plt.xticks([])
plt.yticks([])
plt.show()
M=cv2.getAffineTransform(pos1,pos2)
import cv2
import numpy as np
img=cv2.imread('b.jpg')
pos1=np.float32([[10,50],[30,100],[100,100]])
pos2=np.float32([[30,80],[50,150],[200,50]])
M=cv2.getAffineTransform(pos1,pos2)
result=cv2.warpAffine(img,M,img.shape[:2])
cv2.imshow('img',img)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()
M=cv2.getPerspectiveTransform(pos1,pos2)
import cv2
import numpy as np
img=cv2.imread('a.jpg')
pos1=np.float32([[200,100],[250,200],[100,150],[100,300]])
pos2=np.float32([[0,0],[50,0],[0,100],[50,100]])
M=cv2.getPerspectiveTransform(pos1,pos2)
result=cv2.warpPerspective(img,M,img.shape[:2])
cv2.imshow('img',img)
cv2.imshow('result',result)
cv2.waitKey(0)
cv2.destoryAllWindows()