如何只能使用OpenCV或Numpy提供的功能,实现手动输入旋转角度、翻转图片
时间: 2024-11-04 10:10:18 浏览: 26
在Python中,你可以使用OpenCV(cv2)和NumPy这两个库来实现图片的旋转和翻转操作。以下是简单的步骤:
首先,确保已经安装了`opencv-python`和`numpy`库,如果没有可以使用以下命令安装:
```bash
pip install opencv-python numpy
```
然后,下面是手动输入旋转角度并翻转图片的代码示例:
```python
import cv2
import numpy as np
# 打开图片
img = cv2.imread('your_image_path.jpg')
# 用户输入旋转角度(以度为单位)
rotation_angle = float(input("请输入旋转角度:"))
# 将角度转换为弧度
rotation_rad = rotation_angle * np.pi / 180
# 计算旋转矩阵
M = cv2.getRotationMatrix2D((img.shape[1] // 2, img.shape[0] // 2), rotation_rad, 1)
# 应用旋转
rotated_img = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))
# 图片翻转(垂直翻转为例,水平翻转会用到cv2.flip)
flip_type = int(input("请选择翻转类型(0 - 水平,1 - 垂直,-1 - 两者都翻):"))
if flip_type == 0:
flipped_img = cv2.flip(rotated_img, 0)
elif flip_type == 1:
flipped_img = cv2.flip(rotated_img, 1)
else:
flipped_img = cv2.flip(rotated_img, -1)
# 显示或保存结果
cv2.imshow("Rotated and Flipped Image", flipped_img)
cv2.waitKey(0) # 等待用户按键,按任意键关闭窗口
cv2.destroyAllWindows()
```
在这个例子中,我们先读取图片,然后获取用户输入的旋转角度,并计算旋转矩阵。接着应用这个矩阵对图片进行旋转,最后根据用户选择的翻转类型对旋转后的图片进行翻转。
阅读全文