平移变换

2021-10-05  本文已影响0人  大龙10

《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05

第5章 几何变换

5.3 仿射

5.3.1 平移

  通过转换矩阵M实现将原始图像src转换为目标图像dst:

dst(x, y)=src(M_{11}x+M_{12}y+M_{13}, M_{21}x+M_{22}y+M_{23})

  将原始图像src向右侧移动100个像素、向下方移动200个像素,则其对应关系为:

dst (x, y)=src (x+ 100, y+ 200)

  将上述表达式补充完整,即:

dst (x, y)=src (1·x+ 0·y+ 100, 0·x+ 1·y+ 200)

  根据上述表达式,可以确定对应的转换矩阵M中各个元素的值为:
M11=1, M12=0, M13=100, M21=0,M22=1, M23=200
  将上述值代入转换矩阵M,得到:
M=\begin{equation} \left[ \begin{array} {ccc} 1 & 0 & 100 \\ 0 & 1 & 200 \end{array} \right] \end{equation}

  在已知转换矩阵M的情况下,可以直接利用转换矩阵M调用函数cv2.warpAffine()完成图像的平移。

2) 程序

import cv2
import numpy as np
img=cv2.imread("lena.bmp")
height,width=img.shape[:2]
x=100
y=200
M = np.float32([[1, 0, x], [0, 1, y]])
move=cv2.warpAffine(img,M,(width,height))
cv2.imshow("original",img)
cv2.imshow("move",move)
cv2.waitKey()
cv2.destroyAllWindows()

3) 运行结果

上一篇下一篇

猜你喜欢

热点阅读