python和opencv实现抠图
本文实例为大家分享了python实现抠图的具体代码,供大家参考,具体内容如下
其中使用了opencv中的grabcut方法
直接上代码
#encoding:utf-8
#图像提取
#createby
importnumpyasnp
importcv2
frommatplotlibimportpyplotasplt
img=cv2.imread('1.jpg')
mask=np.zeros(img.shape[:2],np.uint8)
bgdModel=np.zeros((1,65),np.float64)
fgdModel=np.zeros((1,65),np.float64)
rect=(20,20,413,591)
cv2.grabCut(img,mask,rect,bgdModel,fgdModel,10,cv2.GC_INIT_WITH_RECT)
mask2=np.where((mask==2)|(mask==0),0,1).astype('uint8')
img=img*mask2[:,:,np.newaxis]
img+=255*(1-cv2.cvtColor(mask2,cv2.COLOR_GRAY2BGR))
#plt.imshow(img)
#plt.show()
img=np.array(img)
mean=np.mean(img)
img=img-mean
img=img*0.9+mean*0.9
img/=255
plt.imshow(img)
plt.show()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。