opencv模拟划痕的demo
时间: 2023-10-04 11:09:48 浏览: 55
以下是一个简单的 OpenCV Demo,可以帮助您模拟划痕:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 创建一个黑色的蒙版
mask = np.zeros(img.shape[:2], np.uint8)
# 创建一个随机的划痕区域
x, y = np.random.randint(0, img.shape[1]), np.random.randint(0, img.shape[0])
cv2.circle(mask, (x, y), 100, (255, 255, 255), -1)
# 创建一个随机的划痕大小
size = np.random.randint(1, 10)
# 创建一个随机的划痕角度
angle = np.random.randint(0, 360)
# 创建一个旋转矩阵
M = cv2.getRotationMatrix2D((x, y), angle, 1)
# 旋转蒙版
mask = cv2.warpAffine(mask, M, (img.shape[1], img.shape[0]))
# 创建一个卷积核
kernel = np.ones((size, size), np.uint8)
# 对蒙版进行腐蚀操作
mask = cv2.erode(mask, kernel)
# 将蒙版应用于原始图像
result = cv2.bitwise_and(img, img, mask=mask)
# 显示结果
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该Demo会随机生成一个划痕区域,并将其应用于原始图像。您可以根据需要修改划痕区域的大小和角度,以及腐蚀操作的卷积核大小。