mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 15:53:03 +04:00
refactored FGD algorithm
This commit is contained in:
@@ -78,7 +78,7 @@ int main(int argc, const char** argv)
|
||||
Ptr<BackgroundSubtractor> mog = gpu::createBackgroundSubtractorMOG();
|
||||
Ptr<BackgroundSubtractor> mog2 = gpu::createBackgroundSubtractorMOG2();
|
||||
Ptr<BackgroundSubtractor> gmg = gpu::createBackgroundSubtractorGMG(40);
|
||||
FGDStatModel fgd_stat;
|
||||
Ptr<BackgroundSubtractor> fgd = gpu::createBackgroundSubtractorFGD();
|
||||
|
||||
GpuMat d_fgmask;
|
||||
GpuMat d_fgimg;
|
||||
@@ -103,7 +103,7 @@ int main(int argc, const char** argv)
|
||||
break;
|
||||
|
||||
case FGD_STAT:
|
||||
fgd_stat.create(d_frame);
|
||||
fgd->apply(d_frame, d_fgmask);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -142,9 +142,8 @@ int main(int argc, const char** argv)
|
||||
break;
|
||||
|
||||
case FGD_STAT:
|
||||
fgd_stat.update(d_frame);
|
||||
d_fgmask = fgd_stat.foreground;
|
||||
d_bgimg = fgd_stat.background;
|
||||
fgd->apply(d_frame, d_fgmask);
|
||||
fgd->getBackgroundImage(d_bgimg);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -1271,14 +1271,14 @@ TEST(FGDStatModel)
|
||||
{
|
||||
const std::string inputFile = abspath("768x576.avi");
|
||||
|
||||
cv::VideoCapture cap(inputFile);
|
||||
VideoCapture cap(inputFile);
|
||||
if (!cap.isOpened()) throw runtime_error("can't open 768x576.avi");
|
||||
|
||||
cv::Mat frame;
|
||||
Mat frame;
|
||||
cap >> frame;
|
||||
|
||||
IplImage ipl_frame = frame;
|
||||
cv::Ptr<CvBGStatModel> model(cvCreateFGDStatModel(&ipl_frame));
|
||||
Ptr<CvBGStatModel> model(cvCreateFGDStatModel(&ipl_frame));
|
||||
|
||||
while (!TestSystem::instance().stop())
|
||||
{
|
||||
@@ -1297,8 +1297,10 @@ TEST(FGDStatModel)
|
||||
|
||||
cap >> frame;
|
||||
|
||||
cv::gpu::GpuMat d_frame(frame);
|
||||
cv::gpu::FGDStatModel d_model(d_frame);
|
||||
gpu::GpuMat d_frame(frame), d_fgmask;
|
||||
Ptr<BackgroundSubtractor> d_fgd = gpu::createBackgroundSubtractorFGD();
|
||||
|
||||
d_fgd->apply(d_frame, d_fgmask);
|
||||
|
||||
while (!TestSystem::instance().stop())
|
||||
{
|
||||
@@ -1307,7 +1309,7 @@ TEST(FGDStatModel)
|
||||
|
||||
TestSystem::instance().gpuOn();
|
||||
|
||||
d_model.update(d_frame);
|
||||
d_fgd->apply(d_frame, d_fgmask);
|
||||
|
||||
TestSystem::instance().gpuOff();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user