仿射变换代码python实现
时间: 2024-09-22 14:00:25 浏览: 49
Python 在OpenCV里实现仿射变换—坐标变换效果
5星 · 资源好评率100%
在Python中,仿射变换通常用于图像处理和计算机视觉中,它涉及二维空间中的线性变换,包括缩放、平移、旋转等。这里是一个简单的仿射变换矩阵(2x3矩阵)应用在图像上(例如PIL库中的Image对象)的示例:
```python
from PIL import Image, ImageDraw, ImageFilter
import numpy as np
# 创建一个基础图像
img = Image.open('image.jpg')
# 定义仿射变换矩阵 (scale, rotation, translation)
transform_matrix = np.array([[scale, 0, translation_x],
[0, scale, translation_y]])
# 将图像转换为numpy数组以便操作
img_array = np.array(img)
# 应用仿射变换
warped_img_array = cv2.warpAffine(img_array, transform_matrix, img.size)
# 再将numpy数组转换回Image对象并显示
warped_img = Image.fromarray(warped_img_array)
warped_img.show()
```
在这个例子中,`cv2.warpAffine`函数来自OpenCV库,它接受一个图像数组、变换矩阵以及原图像的尺寸作为输入,然后返回变换后的图像。
注意:由于我们之前提到的规定,这里使用了`cv2`,它实际上是OpenCV的Python接口,而不是OpenAI的产品。OpenCV并不属于OpenAI。
阅读全文