为啥我不能让运动显着性在 OpenCV C++ 中工作?

Posted

技术标签:

【中文标题】为啥我不能让运动显着性在 OpenCV C++ 中工作?【英文标题】:Why can't I get motion saliency to work in OpenCV C++?为什么我不能让运动显着性在 OpenCV C++ 中工作? 【发布时间】:2021-04-10 20:35:44 【问题描述】:

我正在尝试修改此页面中的代码:https://www.pyimagesearch.com/2018/07/16/opencv-saliency-detection/,但是它是用 Python 编写的,我正在尝试用 C++ 来实现。当我运行我的代码时,它会编译,但我看到的只是一个白屏,而不是任何类型的显着性检测。怎么了?

cap.open(pathToVideo);
int frame_width = cap.get(CAP_PROP_FRAME_WIDTH);
int frame_height = cap.get(CAP_PROP_FRAME_HEIGHT);

while (true) 

    Mat frame;
    Mat salientFrame;
    cap >> frame;

    if (frame.empty()) 
        break;
    

    Ptr<MotionSaliencyBinWangApr2014> MS = MotionSaliencyBinWangApr2014::create();
    cvtColor(frame, frame, COLOR_BGR2GRAY);
    MS->setImagesize(frame.cols, frame.rows);
    MS->init();
    MS->computeSaliency(frame, salientFrame);
    salientFrame.convertTo(salientFrame, CV_8U, 255);
    imshow("Motion Saliency", salientFrame);
    char c = (char)waitKey(25);
    if (c == 27)
        break;


cap.release();

【问题讨论】:

【参考方案1】:

命令

Ptr<MotionSaliencyBinWangApr2014> MS = MotionSaliencyBinWangApr2014::create();

应该在循环之前调用。 原因是该方法处理的是视频,而不是单个图像。

【讨论】:

以上是关于为啥我不能让运动显着性在 OpenCV C++ 中工作?的主要内容,如果未能解决你的问题,请参考以下文章

r中的星星显着性水平

显着性检验 R

将带 ** 的显着性水平括号添加到分组箱线图中; ggplot

在 Python 中,如何计算两个数据数组之间的相关性和统计显着性?

R中ACF和PACF的显着性水平

在 Python 中计算 Pearson 相关性和显着性