image.png
迭代五次
迭代2次
处理后模特的蓝眼珠被涂黑了,看久了简直是精神污染。解决办法是去mask里改动眼珠位置的值,设成确定的前景。
https://www.cnblogs.com/little-monkey/p/7598529.html
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()