天天看點

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()