Opencv去掉陰影BackgroundSubtractorKNN檢測到陰影

Opencv去掉陰影BackgroundSubtractorKNN檢測到陰影

在用BackgroundSubtractorKNN做運動檢測的時候,能檢測到陰影

_fgDetector = new BackgroundSubtractorKNN(500, 400, true);//True開啟陰影檢測

去陰影前:

去陰影后:

程式碼很簡單:

 在二值化的時候處理一下就好

                    _fgDetector.Apply(frame, forgroundMask);
// # 二值化閾值處理,前景掩碼含有前景的白色值以及陰影的灰色值,在閾值化影象中,將非純白色(244~255)的所有畫素都設為0,而不是255
CvInvoke.Threshold(forgroundMask, forgroundMask,244, 255, ThresholdType.Binary);