python opencv 图片上画有旋转角度矩形
时间: 2024-10-07 11:01:56 浏览: 22
在Python的OpenCV库中,你可以利用`cv2.getRotationMatrix2D()`函数计算旋转矩阵,然后使用`cv2.warpAffine()`函数将图片及其矩形按照指定的角度进行旋转。以下是一个简单的步骤:
1. 首先,你需要读取一张图片并确定要在其上绘制的矩形的位置和尺寸。
```python
import cv2
# 读取图片
img = cv2.imread('image.jpg')
```
2. 定义矩形的位置和大小以及旋转角度。例如,假设矩形左上角坐标为`(x, y)`,宽度和高度分别为`width`和`height`,旋转角度为`angle`(单位为度)。
```python
x, y, width, height = 50, 100, 200, 150
angle = 45
```
3. 计算旋转矩阵:
```python
center = (x + width // 2, y + height // 2) # 矩形中心点
rot_mat = cv2.getRotationMatrix2D(center, angle, 1.0) # 保持原图大小旋转
```
4. 创建一个新的旋转后的图像,并在上面绘制原来的矩形:
```python
rotated_img = cv2.warpAffine(img, rot_mat, img.shape[:2]) # 只旋转部分区域,保持原始大小
cv2.rectangle(rotated_img, (x, y), (x + width, y + height), color=(0, 255, 0), thickness=2)
```
5. 最后,显示原始图片和旋转后的图片:
```python
cv2.imshow('Original', img)
cv2.imshow('Rotated with Angle', rotated_img)
# 保存旋转后的图片
cv2.imwrite('rotated_image.jpg', rotated_img)
cv2.waitKey(0) # 等待用户按键
cv2.destroyAllWindows()
```
阅读全文