怎么使用warpAffine
时间: 2024-05-04 11:18:38 浏览: 18
warpAffine 是 OpenCV 中的一个函数,用于通过仿射变换对图像进行变换。它的原型如下:
```python
cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst
```
其中,参数含义如下:
- src:输入图像。
- M:2x3 的变换矩阵。
- dsize:输出图像的大小。
- dst:输出图像。
- flags:变换的插值方法,默认为 cv2.INTER_LINEAR。
- borderMode:边界填充方式,默认为 cv2.BORDER_CONSTANT。
- borderValue:边界填充值,默认为 0。
举个例子,假设有一张图像 img,我们想将它向右平移 50 个像素,向下平移 100 个像素,可以这样实现:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg')
rows, cols = img.shape[:2]
M = np.float32([[1, 0, 50], [0, 1, 100]])
dst = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow('img', img)
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这里通过构造变换矩阵 M 来实现平移,M 的第一行表示 x 方向的变换,第二行表示 y 方向的变换。第一个元素 1 表示不缩放,第二个元素 0 表示不旋转,第三个元素 50 表示向右平移 50 个像素。同理,第四个元素 0 表示不旋转,第五个元素 1 表示不缩放,第六个元素 100 表示向下平移 100 个像素。最后,将变换后的图像输出即可。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)