OpenCV 中的 RandomCropping 是一种图像增强技术,它可以通过随机裁剪图像来增加数据集的多样性。在 OpenCV 中,可以使用 cv2.random_crop 函数来实现 RandomCropping。
使用 RandomCropping 的基本步骤如下:
- 读取图像
- 随机裁剪图像
- 显示裁剪后的图像
以下是两个示例说明:
示例一:使用 RandomCropping 对图像进行增强
要使用 RandomCropping 对图像进行增强,可以使用以下代码:
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 随机裁剪图像
h, w = img.shape[:2]
new_h, new_w = int(h * 0.8), int(w * 0.8)
top = np.random.randint(0, h - new_h)
left = np.random.randint(0, w - new_w)
bottom = top + new_h
right = left + new_w
img = img[top:bottom, left:right]
# 显示裁剪后的图像
cv2.imshow('image', img)
cv2.waitKey()
cv2.destroyAllWindows()
这将读取名为 image.jpg 的图像,并使用 RandomCropping 对图像进行增强。最终结果将在窗口中显示。
示例二:使用 RandomCropping 对数据集进行增强
要使用 RandomCropping 对数据集进行增强,可以使用以下代码:
import cv2
import numpy as np
# 读取数据集
data = []
for i in range(10):
img = cv2.imread(f'image_{i}.jpg')
data.append(img)
# 随机裁剪图像
new_data = []
for img in data:
h, w = img.shape[:2]
new_h, new_w = int(h * 0.8), int(w * 0.8)
top = np.random.randint(0, h - new_h)
left = np.random.randint(0, w - new_w)
bottom = top + new_h
right = left + new_w
new_img = img[top:bottom, left:right]
new_data.append(new_img)
# 显示裁剪后的图像
for img in new_data:
cv2.imshow('image', img)
cv2.waitKey()
cv2.destroyAllWindows()
这将读取名为 image_0.jpg 到 image_9.jpg 的 10 张图像,并使用 RandomCropping 对每张图像进行增强。最终结果将在窗口中显示。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Opencv Random Cropping - Python技术站