如何只能使用OpenCV或Numpy提供的功能,实现图片手动输入旋转角度、翻转
时间: 2024-11-04 22:09:57 浏览: 30
在Python中,你可以使用OpenCV (Open Source Computer Vision Library) 和 NumPy (数值计算库) 来处理图像并实现旋转和翻转操作。以下是简单的步骤:
1. **安装依赖**:
首先,确保已经安装了这两个库。如果没有,可以使用`pip`安装:
```bash
pip install opencv-python numpy
```
2. **导入所需模块**:
```python
import cv2
import numpy as np
```
3. **读取图片**:
使用`cv2.imread()`加载图片:
```python
img = cv2.imread('image.jpg')
```
4. **旋转图片**:
OpenCV提供了一个函数`getRotationMatrix2D()`用于生成旋转矩阵,然后使用`warpAffine()`应用该矩阵进行旋转:
```python
angle_degrees = 90 # 输入旋转角度(例如顺时针90度)
angle_radians = angle_degrees * np.pi / 180
center = tuple(img.shape[1::-1] // 2)
rot_mat = cv2.getRotationMatrix2D(center, angle_radians, 1.0)
rotated_img = cv2.warpAffine(img, rot_mat, img.shape[:2])
```
5. **水平翻转图片**:
可以通过将每一行反转实现水平翻转,也可以直接调用`flip()`函数:
```python
flipped_img_h = cv2.flip(rotated_img, 0) # 水平翻转(0表示沿x轴)
```
6. **垂直翻转图片**:
类似地,垂直翻转可以这样做:
```python
flipped_img_v = cv2.flip(flipped_img_h, 1) # 垂直翻转(1表示沿y轴)
```
7. **显示结果**:
```python
cv2.imshow("Original", img)
cv2.imshow("Rotated and Flipped", flipped_img_v)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文