opencv GrabCut前景檢測

2021-10-08 14:31:56 字數 1703 閱讀 1930

grabcut函式原型:

def

grabcut

(img, mask, rect, bgdmodel, fgdmodel, itercount, mode=

none

)

img為原影象,mask為掩模,bgdmodel為前景背景模型,fgdmodel為後景背景模型,rect為初始矩形,背景和前景模型都要基於這個矩形所留下的區域來決定。

)#載入想要處理的影象

mask = np.zeros(img.shape[:2

],np.uint8)

#建立乙個與所載入影象同形狀的掩模,並用0填充

bgdmodel = np.zeros((1

,65),np.float64)

#建立以0填充的前景背景模型

fgdmodel = np.zeros((1

,65),np.float64)

#建立以0填充的後景背景模型

rect =

(100,50

,421

,378

)#準備用乙個標識出想要隔離的物件的矩形來初始化grabcut演算法。背景和前景模型都要基於這個初始矩形所留下的區域來決定。

cv2.grabcut(img,mask,rect,bgdmodel,fgdmodel,

5,cv2.gc_init_with_rect)

#使用指定的空模型和掩模來執行grabcut演算法,實際上是用乙個矩形來初始化這個操作。

#fgdmodel後的引數itercount(demo中為5)是演算法的迭代次數(整型數)

#經過以上處理後,mask已經變成包含0~3的值,值為0和2的將轉化為0,值為1和3的將轉為1,然後儲存在mask2中。

mask2 = np.where(

(mask==2)

|(mask==0)

,0,1

).astype(

'uint8'

)#對mask中的值進行轉換,這樣就可以用mask2過濾出所有的0值畫素。

img = img * mask2[:,

:,np.newaxis]

#併排展示。

opencv grabcut 分割演算法

grabcut基於 grabcut interactive foreground extraction using iterated graph cuts,是微軟亞洲研究院04年的 本 摘自opencv的示例 自己做了一些修改,加入了乙個輸出mask的功能。另外,由於grabcut會造成不少小洞,所...

行業前景不等於職業前景。

求職時,趨熱避冷 是很多求職者的思維定勢。銀行業 it業等熱門行業往往意味著高收入 高福利和長遠的發展,而農林牧漁業 傳統製造業等行業卻總給人收入低 工作枯燥的印象。因此在人才市場中,熱門行業總是人滿為患,冷門行業常常乏人問津。擇業不宜只盯著熱門行業。首先,行業的冷與熱是相對的,前幾年網際網路業曾紅...

Vista前景不妙

在 7個月之前,vista 面向企業版本正式發布,至今已有半年之久。vista 表現如何?7月 30日,patchlink 軟體補丁管理 商 公布乙份市場調查報告,發現 vista 企業版 的前景很不妙。根據這項調查,patchlink 發現 相比 7個月之前,計畫轉向 vista 的企業更少了。這...