上面的是抠图前的猴子图形,下面的是抠后的猴子图形,
以下是完整的源代码:
""" Python自动抠图测试程序.py 这个作品对monkey.jpg进行抠图, 事先需要确定好所抠区域的左上角坐标和宽高 """ import cv2 import numpy as np fname = 'monkey.jpg' img = cv2.imread(fname) rect = (50,30,372,285) # 左上角坐标和宽高 mask = np.zeros(img.shape[:2], np.uint8) bgModel = np.zeros((1,65), np.float64) fgModel = np.zeros((1,65), np.float64) cv2.grabCut(img, mask, rect, bgModel, fgModel, 5, cv2.GC_INIT_WITH_RECT) mask2 = np.where((mask == 2) | (mask == 0), 0, 1).astype(np.uint8) out = img * mask2[:, :, np.newaxis] print(out) #cv2.imshow('风火轮编程自动抠图', out) #cv2.waitKey() # 把out写入到磁盘中,out是一个numpy的2d阵列. cv2.imwrite('monkey.png',out,[int(cv2.IMWRITE_PNG_COMPRESSION),9])