天天看点

OpenCV 图像平移

cv.warpAffine(img, M, dsize)      
  • img:输入图像
  • M: 2*3移动矩阵
    OpenCV 图像平移
    注意:将M设置为np.float32类型的Numpy数组。
  • dsize:输出图像的大小

    注意:输出图像的大小,它应该是(宽度,高度)的形式。width=列数,height=行数。

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np

# 1.读取图像
img1 = cv.imread("1.png")

# 2.图像平移
rows, cols = img1.shape[:2]
M = np.float32([[1, 0, 100], [0, 1, 50]])  # 平移矩阵
dst1 = cv.warpAffine(img1, M, (cols, rows))  # 向右平移100,向下平移50
dst2 = cv.warpAffine(img1, M, (cols * 2, rows * 2))  # 向右平移100,向下平移50,画布大小乘以2

# 3. 图像显示
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(10, 8), dpi=100)
axes[0].imshow(img1[:, :, ::-1])
axes[0].set_title("原图")
axes[1].imshow(dst1[:, :, ::-1])
axes[1].set_title("平移后结果")
axes[2].imshow(dst2[:, :, ::-1])
axes[2].set_title("放大画布")
plt.show()