请提供代码实现python opencv智能抠图
时间: 2023-05-16 15:05:31 浏览: 201
python open-cv实现智能自动抠图
5星 · 资源好评率100%
以下是一个简单的 Python OpenCV 智能抠图的代码实现:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('input.jpg')
# 创建掩膜
mask = np.zeros(img.shape[:2], np.uint8)
# 定义背景模型和前景模型
bgdModel = np.zeros((1, 65), np.float64)
fgdModel = np.zeros((1, 65), np.float64)
# 定义矩形区域
rect = (50, 50, 450, 290)
# 进行 GrabCut 操作
cv2.grabCut(img, mask, rect, bgdModel, fgdModel, 5, cv2.GC_INIT_WITH_RECT)
# 将掩膜中的 0 和 2 像素设为 0,将 1 和 3 像素设为 1
mask2 = np.where((mask == 2) | (mask == 0), 0, 1).astype('uint8')
# 将原图像与掩膜相乘,得到抠图结果
img = img * mask2[:, :, np.newaxis]
# 显示结果
cv2.imshow('output', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个代码实现了一个简单的 GrabCut 抠图算法,可以用于智能抠图。
阅读全文