做一个cutout的python代码
时间: 2023-10-09 13:04:44 浏览: 71
以下是一个简单的Cutout Python代码示例:
```python
import numpy as np
import cv2
def cutout(img, size=64, n_holes=1):
# get image shape
h, w, c = img.shape
# create a copy of the image
img_copy = np.copy(img)
# loop through the number of holes
for i in range(n_holes):
# get a random start point within the image
y = np.random.randint(h)
x = np.random.randint(w)
# calculate the end point of the box
y1 = np.clip(y - size//2, 0, h)
y2 = np.clip(y + size//2, 0, h)
x1 = np.clip(x - size//2, 0, w)
x2 = np.clip(x + size//2, 0, w)
# set the pixels within the box to zero
img_copy[y1:y2, x1:x2, :] = 0
return img_copy
# example usage
img = cv2.imread('example.jpg')
cutout_img = cutout(img, size=100, n_holes=3)
cv2.imshow('Original', img)
cv2.imshow('Cutout', cutout_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个代码使用了OpenCV和NumPy库。它首先复制原始图像,然后在图像上创建n_holes个大小为size的随机方块,并将这个方块内的像素设置为0。最后返回修改后的图像。在这个示例中,使用了一个名为“example.jpg”的图像作为输入。
阅读全文