数据集增强 python代码
时间: 2023-08-29 07:07:47 浏览: 206
数据集增强可以通过各种技术来实现,以下是常用的一些数据增强技术的Python代码示例:
1. 图像平移增强
```python
import cv2
import numpy as np
def translate(image, x, y):
# 定义平移矩阵
M = np.float32([[1, 0, x], [0, 1, y]])
# 应用平移矩阵到图像
shifted = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
# 返回平移后的图像
return shifted
```
2. 图像翻转增强
```python
import cv2
import numpy as np
def flip(image, axis):
# 水平翻转
if axis == 0:
flipped = cv2.flip(image, 0)
# 垂直翻转
elif axis == 1:
flipped = cv2.flip(image, 1)
# 水平和垂直翻转
elif axis == -1:
flipped = cv2.flip(image, -1)
# 返回翻转后的图像
return flipped
```
3. 图像旋转增强
```python
import cv2
import numpy as np
def rotate(image, angle, scale=1.0):
# 获取图像尺寸
(h, w) = image.shape[:2]
# 计算旋转中心
center = (w // 2, h // 2)
# 定义旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, scale)
# 应用旋转矩阵到图像
rotated = cv2.warpAffine(image, M, (w, h))
# 返回旋转后的图像
return rotated
```
4. 图像缩放增强
```python
import cv2
import numpy as np
def resize(image, width=None, height=None, inter=cv2.INTER_AREA):
# 获取图像尺寸
(h, w) = image.shape[:2]
# 如果宽度和高度都为空,则返回原图像
if width is None and height is None:
return image
# 如果宽度为空,则根据高度计算宽度
if width is None:
r = height / float(h)
dim = (int(w * r), height)
# 如果高度为空,则根据宽度计算高度
else:
r = width / float(w)
dim = (width, int(h * r))
# 缩放图像
resized = cv2.resize(image, dim, interpolation=inter)
# 返回缩放后的图像
return resized
```
以上是一些常用的数据增强技术的Python代码示例,可以根据具体需求进行调整和组合。
阅读全文