2017-01-05 27 views
1

私はPython 2.7でOpenCV 3.1を使用しています。私はこれを実行すると、私は次のエラーを取得する背景と画像の分離方法は?

img = cv2.imread('testimage.jpg', cv2.IMREAD_COLOR); 
fgbg = cv2.BackgroundSubtractorMOG2(); 
fgmask = fgbg.apply(img); 
cv2.imshow("backsep",fgmask); 

Traceback (most recent call last): File "C:/Users/R.K.singh/Desktop/Image processing/background-sep.py", line 20, in fgbg = cv2.BackgroundSubtractorMOG2(); AttributeError: 'module' object has no attribute 'BackgroundSubtractorMOG2'

助けてください、私は別の背景と前景のオブジェクトにしようとしていますし、これを使用しています。

P.S:この問題は以前に尋ねられましたが、解決策はありません。

+1

'FGBG = cv2.createBackgroundSubtractorMOG2() ; 'ドキュメントを参照する場合に使用してください

+0

@AxelB。トレースバック(最新の最後の呼び出し): ファイル "C:¥Users¥RKsingh¥Desktop¥Image processing¥background-sep.py"、行21、 fgmask = fgbg.apply(img) ; エラー:C:\ builds \ master_PackSlaveAddon-win32-vc12-static \ opencv \ modules \ python \ src2 \ cv2.cpp:163:エラー:(-215)データは通常NULLである必要があります。関数NumpyAllocator :: allocate – singhuist

答えて

3

Axelが示唆しているように、cv2.BackgroundSubtractorMOG2()は、ビデオフレームから背景を削除するために使用されます。

画像の場合、グラブカットアルゴリズムを使用できます。 OpenCVのドキュメントには、関連するPythonコードを含むtutorialが含まれています。

あなたはまた、画像セグメンテーションをより良く理解するためにこれらのビデオを見ることができます:私はそれがだと思う