OpenCV3 Python语言实现 笔记3

来源:互联网 发布:java用什么软件编写 编辑:程序博客网 时间:2024/06/16 19:06

分割    GrabCut算法   分水岭算法


一、GrabCut

import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread('../images/statue_small.jpg')mask = np.zeros(img.shape[:2],np.uint8)bgdModel = np.zeros((1,65),np.float64)#前景模型fgdModel = np.zeros((1,65),np.float64)#背景模型rect = (100,1,421,378)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]#plt.subplot(121), plt.imshow(img)plt.title("grabcut"), plt.xticks([]), plt.yticks([])plt.subplot(122), plt.imshow(cv2.cvtColor(cv2.imread('../images/statue_small.jpg'), cv2.COLOR_BGR2RGB))plt.title("original"), plt.xticks([]), plt.yticks([])plt.show()

二、分水岭算法

。。。

原创粉丝点击