def data_augmentation(image): # 随机旋转 angle = np.random.randint(-10, 10) image = ndimage.rotate(image, angle, reshape=False)

# 随机平移
t_x, t_y = np.random.randint(-10, 10, size=(2,))
rows, cols = image.shape
M = np.float32([[1, 0, t_x], [0, 1, t_y]])
image = cv2.warpAffine(image, M, (cols, rows))
# 随机裁剪
crop_size = np.random.randint(280, 300)
if crop_size < rows and crop_size < cols:
    x = np.random.randint(0, cols - crop_size)
    y = np.random.randint(0, rows - crop_size)
    image = image[y:y + crop_size, x:x + crop_size]

# 随机翻转
flip = np.random.randint(0, 2)
if flip:
    image = cv2.flip(image, 1)

# 随机色彩变化
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv_image)
h = h.astype(np.float32)
s = s.astype(np.float32)
v = v.astype(np.float32)
h += np.random.randint(-10, 10)
s += np.random.randint(-10, 10)
v += np.random.randint(-10, 10)
h = np.clip(h, 0, 255).astype(np.uint8)
s = np.clip(s, 0, 255).astype(np.uint8)
v = np.clip(v, 0, 255).astype(np.uint8)
hsv_image = cv2.merge([h, s, v])
image = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR)
return image

错误信息:cv2模块没有COLOR_GRAY2HSV属性。

原因: cv2.COLOR_GRAY2HSV 是 OpenCV 中用于将灰度图像转换为 HSV 颜色空间的常量。它可能在较旧的 OpenCV 版本中不存在。

解决方法:

1. 更新 OpenCV 库至最新版本:使用 pip install --upgrade opencv-python 命令更新 OpenCV 库。

2. 使用 cv2.COLOR_BGR2HSV:如果使用的是彩色图像,可以使用 cv2.COLOR_BGR2HSV 将彩色图像转换为 HSV 颜色空间。

3. 使用 cv2.COLOR_GRAY2BGR 将灰度图像转换为 BGR 颜色空间:可以使用 cv2.COLOR_GRAY2BGR 将灰度图像转换为 BGR 颜色空间,然后使用 cv2.COLOR_BGR2HSV 将其转换为 HSV 颜色空间。

图像数据增强:旋转、平移、裁剪、翻转、色彩变化

原文地址: https://www.cveoy.top/t/topic/mQaX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录