cv.warpAffine
时间: 2024-02-22 07:53:23 浏览: 98
030_OpenCV 仿射變換(warpAffine) _ 阿洲的程式教學1
cv.warpAffine是OpenCV库中的一个函数,用于对图像进行仿射变换。仿射变换是一种线性变换,可以通过平移、旋转、缩放和剪切等操作来改变图像的形状和位置。
该函数的语法如下:
dst = cv.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]])
参数说明:
- src:输入图像,可以是灰度图像或彩色图像。
- M:变换矩阵,是一个2x3的浮点型矩阵。可以使用cv.getRotationMatrix2D()或cv.getAffineTransform()函数来生成。
- dsize:输出图像的大小,可以是一个元组(宽度,高度)或者一个整数值。
- dst:输出图像,可选参数。
- flags:插值方法的标志,可选参数。默认为cv.INTER_LINEAR,表示使用双线性插值。
- borderMode:边界填充模式,可选参数。默认为cv.BORDER_CONSTANT,表示使用常数填充边界。
- borderValue:边界填充的常数值,可选参数。默认为0。
该函数会根据给定的变换矩阵M对输入图像src进行仿射变换,并将结果存储在输出图像dst中。可以通过调整变换矩阵M的参数来实现不同的仿射变换效果。
例如,以下代码将对输入图像进行平移变换:
```
import cv2 as cv
import numpy as np
img = cv.imread('input.jpg')
rows, cols = img.shape[:2]
M = np.float32([[1, 0, 100], [0, 1, 50]])
dst = cv.warpAffine(img, M, (cols, rows))
cv.imshow('Input', img)
cv.imshow('Output', dst)
cv.waitKey(0)
cv.destroyAllWindows()
```
这段代码将图像沿x轴平移100个像素,沿y轴平移50个像素,并显示原始图像和平移后的图像。
阅读全文