OpenCV Background subtraction 3.2 version example (for MOG, MOG2, GMG, KNN)

This is example for background subtraction on opencv 3.2 version

previously, I post 2.7 version example on here.

But some usage is changed, and knn subtraction method is added.

Many people ask that example based on opencv 3.2

refer to below source code

Thank you.

< gist code >

< /gist code >


floodFill opencv function example

floodFill function example

< gist >

< /gist >

CallBackFunc, EVENT_LBUTTONDOWN, setMouseCallback, rectangle, floodFill,

video show and write keeping original fps

When the video write, we can set parameter in following function..

outVideo.open(".\\outVideo.avi", askFileTypeBox, capture.get(CV_CAP_PROP_FPS), S, Color);

And we can control play speed by waitKey.

double fps = capture.get(CV_CAP_PROP_FPS);
delay Per Second = 1/fps
in milliseconds = 1/fps * 1000

so we delay, waitKey( 1/fps * 1000 )

by the way, it is not exact fps. because it is delayed including other processing in the loop.
for example, data copy, sobel, imshow ...

< gist code >

< /gist code >





simple code for image coordinate to screen coordinate.

Arslan Ahmed, this is the post for you. ^^

< gist code start >

< gist code end >

mouse event, setMouseCallback, opencv, Total,


AMP dose run on my pc?, AMP(Accelerated Massive Parallelism)

AMP is abbreviation of Accelerated Massive Parallelism.
It is maintained by Microsoft and it run based on DirectX 11.
So as I know, AMP works in windows only, but there seems to be an attempt to run on other os.

Basically, AMP run on these environment
  • Windows 7, Windows 8, Windows Server 2008 R2, or Windows Server 2012 
  • DirectX 11 Feature Level 11.0 or later hardware 
  • For debugging on the software emulator, Windows 8 or Windows Server 2012 is required. For debugging on the hardware, you must install the drivers for your graphics card.
And no need to install for AMP, If you use Visual Studio.
So let's check your computer condition for parallel programming.

< code start >

< code end >

This is my condition.

We can check whether run or not by this.

if, accs.size() == 0, then there is no parallel machine.

I think AMP is easy and usefull to use parallel GPU programming.
This is useful for creating Windows applications.

reference site

Korean blog

MS site

MSDN AMP toturial