为啥我不能让运动显着性在 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++ 中工作?的主要内容,如果未能解决你的问题,请参考以下文章
将带 ** 的显着性水平括号添加到分组箱线图中; ggplot