目标
学习将不同的几何变换应用到图像上,如平移、旋转、仿射变换等。
你会看到这些函数: cv.getPerspectiveTransform
变换
OpenCV提供了两个转换函数cv.warpAffine和cv.warpPerspective,您可以使用它们进行各种转换。cv.warpAffine采用2x3转换矩阵,而cv.warpPerspective采用3x3转换矩阵作为输入。
缩放
缩放只是调整图像的大小。为此,OpenCV带有一个函数cv.resize()。图像的大小可以手动指定,也可以指定缩放比例。也可使用不同的插值方法。首选的插值方法是cv.INTER_AREA用于缩小,cv.INTER_CUBIC(慢)和cv.INTER_LINEAR用于缩放。默认情况下,出于所有调整大小的目的,使用的插值方法为cv.INTER_LINEAR。您可以使用以下方法调整输入图像的大小:
import numpy as np
import cv2 as cv
img = cv.imread('messi5.jpg')
res = cv.resize(img,None,fx=2, fy=2, interpolation = cv.INTER_CUBIC)
#或者
height, width = img.shape[:2]
res = cv.resize(img,(2*width, 2*height), interpolation = cv.INTER_CUBIC)
平移
平移是物体位置的移动。如果您知道在(x,y)方向上的位移,则将其设为($t_x$,$t_y$),你可以创建转换矩阵$\mathbf{
M}$,如下所示:
$$ M = \begin{
bmatrix} 1 & 0 & t_x \ 0 & 1 & t_y \end{
bmatrix} $$
您可以将其放入np.float32类型的Numpy数组中,并将其传递给cv.warpAffine函数。参见下面偏移为(100, 50)的示例:
import numpy as np
import cv2 as cv
img = cv.
opencv图像几何变化,图像/照片平行矫正,仿射变换,透视变换,旋转,平移
最新推荐文章于 2023-06-08 23:41:26 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)