-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextract_background.cpp
executable file
·60 lines (47 loc) · 1.52 KB
/
extract_background.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include </usr/include/opencv4/opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv)
{
/*
Bu örnek kod, 'VideoCapture' sınıfını kullanarak kamerayı açar.
Ardından, 'createBackgroundSubtractorMOG2()' fonksiyonunu kullanarak
arka plan çıkarıcıyı oluşturur. Her karede 'apply()' yöntemi
kullanılarak arka plan çıkarılır ve 'imshow()' yöntemi kullanılarak
çıkarılmış arka plan gösterilir. Son olarak, kullanıcının ESC tuşuna
basması durumunda program sonlandırılır ve bellek serbest bırakılır.
*/
// Open the camera
VideoCapture cap(0);
// If the camera can't be opened, show an error message
if (!cap.isOpened())
{
std::cerr << "Failed to open the camera." << std::endl;
return -1;
}
// Create the background subtractor
Ptr<BackgroundSubtractor> pBackSub = createBackgroundSubtractorMOG2();
Mat frame, fgMask;
while (true)
{
// Capture the next frame
cap >> frame;
// If there is no data from the camera, break the loop
if (frame.empty())
{
break;
}
// Subtract the background
pBackSub->apply(frame, fgMask);
// Show the extracted background
imshow("Background", fgMask);
// Exit the loop if the user presses the ESC key
if (waitKey(25) == 27)
{
break;
}
}
// Release the memory
cap.release();
destroyAllWindows();
return 0;
}