opencv grabCap python实现

python基础

浏览数:86

2019-8-25

AD:资源代下载服务
处理前

image.png

处理后

迭代五次

处理前后对比

迭代2次

处理后模特的蓝眼珠被涂黑了,看久了简直是精神污染。解决办法是去mask里改动眼珠位置的值,设成确定的前景。


https://www.cnblogs.com/little-monkey/p/7598529.html

上python源码:
import cv2
import numpy as np
import matplotlib.pyplot as plt

image = cv2.imread("C:/Users/liuxu/desktop/3.jpg")//打开一张图片,如果后续操作出错,先查一下路径写对了没
mask = np.zeros((image.shape[:2]),np.uint8)// 0表示明确属于背景,1表示明确属于前景
rec = (150,290,350,550)
bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)

res = cv2.grabCut(image,mask,rec,bgdModel,fgdModel,2,cv2.GC_INIT_WITH_RECT)
mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8') //明确属于背景和可能属于背景的地方都置为0,RGB的全0为黑色。
img = image*mask2[:,:,np.newaxis] 

cv2.imshow('hello',img)
cv2.waitKey(0)
cv2.destroyAllWindows() 

作者:小太阳花儿