BackgroundSubtractorMOG2 は、マスクではなく前景の輪郭を返します。OpenCVを使用して前景の適切なマスクを取得するには?
ありがとう、サジド
BackgroundSubtractorMOG2 は、マスクではなく前景の輪郭を返します。OpenCVを使用して前景の適切なマスクを取得するには?
ありがとう、サジド
そこで得られた前景マスクは8ビットで、キャプチャされた画像はおそらく24ビット(3チャンネル)です。したがって、実際の画像に適用するには、マスクを 3 つのチャンネルにも変換する必要があります。
Mat maskrgb;
cvtColor(mask,maskrgb,CV_GRAY2BGR);
// now , apply it:
Mat draw = imagergb & (maskrgb > 0);
imshow("lalala", draw );
入力が輪郭である cv::fillPoly 関数を使用すると、マスクが作成されます。 http://docs.opencv.org/doc/tutorials/core/basic_geometric_drawing/basic_geometric_drawing.html