您的位置:首页 > 编程语言 > Python开发

OpenCV3 Python语言实现 笔记3

2017-07-10 16:57 615 查看
分割    GrabCut算法   分水岭算法

一、GrabCut

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = 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()
二、分水岭算法
。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: