opencv3+python3进行图片平移
1、理论基础:B = M * AM为矩阵,【[1,0,80],[0,1,-80]】

2、向右下移动代码:#平移import 罕铞泱殳cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltfrom matplotlib.font_manager import FontPropertiesplt.rcParams['font.family'] = ['sans-serif']plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False #显示负号font = FontProperties(fname='/System/Library/Fonts/STHeiti Light.ttc', size=16)# img = cv.imread('c:\\meiping1.png',0)img = cv.imread('c:\\meiping1.png',1)rows,cols, channel = img.shape# 平移矩阵M:[[1,0,x],[0,1,y]]M = np.float32([[1,0,-80],[0,1,80]])dest = cv.warpAffine(img,M,(cols,rows))plt.subplot(1,2,1),plt.imshow(img)plt.subplot(1,2,2),plt.imshow(dest)# cv.imshow('dest', dest)plt.title("左下移")plt.xticks([]),plt.yticks([])plt.show()


3、M = np.float32([[1,0,80],[0,1,颍骈城茇-80]])dest = cv.warpAffine(img,M,(cols,rows))plt.subplot(1,2,1),plt.imshow(img)plt.subplot(1,2,2),plt.imshow(dest)# cv.imshow('dest', dest)plt.title("右上移")plt.xticks([]),plt.yticks([])plt.show()


4、M = np.float32([[1,0,-80],[0,1巳呀屋饔,-80]])dest = cv.warpAffine(img,M,(cols,rows))plt.subplot(1,2,1像粜杵泳),plt.imshow(img)plt.subplot(1,2,2),plt.imshow(dest)# cv.imshow('dest', dest)plt.title("左上移")plt.xticks([]),plt.yticks([])plt.show()


5、M = np.float32([[1,0,80],[0,1,80]])dest = cv.warpAffine(img,M,(cols,rows))plt.subplot(1,2,1),plt.imshow(img)plt.subplot(1,2,2),plt.imshow(dest)# cv.imshow('dest', dest)plt.title("左下移")plt.xticks([]),plt.yticks([])plt.show()


6、小结:float32[[1,0,80],[0,1,-80]]设置矩阵warpAffine进行转换实现