Opencv学习笔记(三十一)图像前景提取GrabCut 算法

这篇博客介绍了如何利用OpenCV库中的grabCut函数进行图像的前景与背景分割。通过创建掩模、初始化模型并设定感兴趣区域,实现了对指定图像中动物部分的精确提取,并将结果保存为新的图片文件。最终展示了一个使用matplotlib显示处理后图像的例子。
摘要由CSDN通过智能技术生成
import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread(r'F:\OPENCV\Opencv\animal.png')
# 创建掩膜
mask = np.zeros(img.shape[:2], np.uint8)
bgdModel = np.zeros((1, 65), np.float64)
fgdModel = np.zeros((1, 65), np.float64)
rect = (40, 40, 1000, 1000)
# 函数的返回值是更新的mask, bgdModel, fgdModel
cv2.grabCut(img, mask, rect, bgdModel, fgdModel, 5, cv2.GC_INIT_WITH_RECT)
mask2 = np.where((mask == 2) | (mask == 0), 0, 1).astype('uint8')
img = img * mask2[:, :, np.newaxis]
cv2.imwrite(r'F:\OPENCV\Opencv\animal-fg.png', img)
plt.imshow(img[:, :, ::-1])
plt.colorbar()
plt.show()

结果显示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值