MSER on Videotracking
MSER on Videotracking
我有一个时间问题。我已经为图像处理编程了一个qt Gui。对于这种情况,实现用于视频处理和对象跟踪的 blobdectetor 是相关的。主要是它看起来不错。它在处理、抓取、毫秒操作和仅显示 0.07 到 0.08 秒后与 GUI 一起使用,可用于超过 10 fps 的良好帧速率。
为此,我在 Suse 12.3 上使用 Qt 4 - C++。OpenCV 2.4.3 和笔记本电脑网络摄像头。我的问题是,过了一会儿,我的程序就挂起了。
查看我的系统监视器,我看到 CPU 功率已达到 100%,并且单次运行使用 CPU 长时间使用处理器的硬资源(没有 GUI)。我不明白出了什么问题。有人有过这样的经历吗?
提前!
一些代码片段:MSER 初始化关于 GUI:
MSER FtMSERVid( MSERDelta, MSERMinArea, MSERMaxArea,MSERMaxVariation ,MSERMinDiversity);
视频处理功能
double startTime = clock();
camDev.read(vidImg);
if(vidImg.empty() == true)
{
newLineInText(tr("No data from device"));
timer->stop();
ui->pbPlay->setText(tr(">"));
return;
}
MSERPointsVid.clear();
if(vidImg.channels() > 1)
cvtColor(vidImg, vidImg,CV_BGR2GRAY);
FtMSERVid(vidImg, MSERPointsVid);
Mat showMat = vidImg.clone();
if(showMat.channels() > 1)
{
cvtColor(showMat,showMat,CV_BGR2RGB);
qImg = QImage((uchar*)showMat.data,showMat.cols,showMat.rows,showMat.step,QImage::Format_RGB888);
}
else if(showMat.channels() == 1)
qImg = QImage((uchar*)showMat.data,showMat.cols,showMat.rows,showMat.step,QImage::Format_Indexed8);
ui->lblOrig->setPixmap(QPixmap::fromImage(qImg));
double endTime = clock();
double timeDuration = (endTime - startTime)/CLOCKS_PER_SEC;
if(numVid%10 == 0)
{
framesPS = int(1/timeDuration) - 1;
if(framesPS > 1)
framesPS = 1;
FPSChanged(framesPS);
numVid = 0;
}
你的提示帮助我解决了问题。MSER 正在创建大量数据,我已经编程以将其第二次更新显示到一个独立工作的表中。到目前为止没有问题,但表格显示所有 Points.So 只是为了填充表格中的船体点。我已经更改了相应的向量,然后它像其他任何东西一样运行。
我发现是因为你对瓦尔格林德的暗示。我以前从未需要过这个。线程提示让我学到了很多关于线程的知识。谢谢你。
英格堡
相关文章:
- 瓦尔格林德:数学函数"Conditional jump or move depends on uninitialised value(s)"
- 循环挂起迭代的 std::擦除 on std::list
- SIGSEGV on Boost UDP 套接字关闭 - tcache_get at malloc.c.
- CPP 中的瓦尔格林德和记忆泄漏:"Conditional jump or move depends on uninitialised values"
- std::bind on statd::array 的运算符 []
- 您将如何连接"on the fly"文本+整数并将其传递给函数?
- 如何修复输出日志中的"EnableInput can only be specified on a Pawn for its Controller"错误
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- C++ library with Tensorflow on Android
- SFML 交叉编译 for Windows on Linux.
- How to recover system gcc compiler on centos 6
- Cmake with Flex/Bison on windows
- 按原样保存用户输入 - Ruby on Rails
- OpenAL C++ on Linux
- Boost::process on Windows - with MinGW?
- CMake on FindOpenGL.cmake 中的错误,当使用导入的目标 OpenGL::GLU?
- Utilization of atomic_flag on C++
- anaconda cythonize C++ on windows 10
- CMake & MinGW Compileilation on Windows,无需 -G "MinGW Makefiles"标志
- MSER on Videotracking