gpt4 book ai didi

c++ - 视频跟踪 MSER

转载 作者:行者123 更新时间:2023-11-28 07:18:04 24 4
gpt4 key购买 nike

我有时间问题。我已经编写了一个用于图像处理的 qt Gui。对于这种情况,实现用于视频处理和对象跟踪的 blobdectetors 是相关的。主要是好看。它在处理、抓取、mser 操作和显示后使用 GUI,只需 0.07 到 0.08 秒,这可用于超过 10 fps 的漂亮帧率。

为此,我在 Suse 12.3 上使用 Qt 4 - C++。 OpenCV 2.4.3 和笔记本电脑网络摄像头。我的问题是,过了一会儿我的程序挂了。

查看我的系统监视器时,我发现 CPU 功率已达到 100%,单次运行使用 CPU 的硬资源长时间使用处理器(无 GUI)。我不明白出了什么问题。有人有这方面的经验吗?

提前联系!

一些代码片段:关于 GUI 的 MSER 初始化:

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 正在创建大量数据,我已经编程将其第二次更新显示到一个独立工作的表中。到目前为止没问题,但表格显示所有点已经太多了。所以它只是为了填充表格中的船体点而提供的。我已经更改了相应的 vector ,然后它就可以正常运行了。

由于您对 valgrind 的提示,我发现了这一点。我以前从来不需要这个。线程提示让我学到了很多关于线程的知识。谢谢你。

英格褒

关于c++ - 视频跟踪 MSER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19923350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com