平移变换
2021-10-05 本文已影响0人
大龙10
《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05
第5章 几何变换
5.3 仿射
5.3.1 平移
通过转换矩阵M实现将原始图像src转换为目标图像dst:
将原始图像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的情况下,可以直接利用转换矩阵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()