小编MSO*_*MSO的帖子

测量OpenCV FPS

我正在寻找一种测量openCV FPS的正确方法.我找到了几种方法.但它们都不适合我.

我测试过的第一个使用time_t start和time_t end.一旦它返回一个转储函数作为fps x时间图(我真的无法想象fps图如何成为转储函数),我认为一个是错误的.

这是这个情节的形象.

FPS PLOT

我测试的第二个使用t =(double)cvGetTickCount()来测量fps.一旦它返回120 fps,这种方式是错误的,但是,对于30秒长度,以120 fps捕获的视频不应该花费超过1分钟来处理.所以这是衡量FPS的错误方法.

有人知道在openCV中测量FPS的另一种方法吗?

PS.我正试图在视频的每一帧中找到圆圈.视频帧尺寸为320x240像素.

更新2 我正在尝试测量FPS的代码.

for(;;){

    clock_t start=CLOCK();

    Mat frame, finalFrame;
    capture >> frame; 

    finalFrame = frame;

    cvtColor(frame, frame, CV_BGR2GRAY);

    GaussianBlur(frame, frame, Size(7,7), 1.5, 1.5);
    threshold(frame, frame, 20, 255, CV_THRESH_BINARY);

    dilate(frame, frame, Mat(), Point(-1, -1), 2, 1, 1);
    erode(frame, frame, Mat(), Point(-1, -1), 2, 1, 1);

    Canny(frame, frame, 20, 20*2, 3 );

    vector<Vec3f> circles;

    findContours(frame,_contours,_storage,CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE );

    vector<vector<Point> > contours_poly( _contours.size() );
    vector<Rect> boundRect( _contours.size() );
    vector<Point2f>center( …
Run Code Online (Sandbox Code Playgroud)

c++ opencv

8
推荐指数
1
解决办法
1万
查看次数

检测类似于圆圈的对象

我正在尝试使用OpenCV检测与圆形相似的对象HoughCircles.问题是:HoughCircles在某些情况下无法检测到此类对象.

有没有人知道任何替代方法来检测像这些圆圈类似的对象?

更新 在此输入图像描述

更新

Hello Folks我正在添加一个检测方法结果的gif.

在此输入图像描述

使用gif更容易解释问题.我想要删除的不良效果是圆圈大小变化.即使对于像右边那样的静态形状,左边的结果也是不精确的.有谁知道解决方案吗?

更新 我需要的所有东西都是它的直径.我用它完成了findContours.现在,findContours当使用openCV和OpenMP时,我无法使用它.有没有人知道findContours的快速替代品?

更新

我用来检测这些形状的代码.

     for (int j=0; j<=NUM_THREADS-1;j++)
        {
            capture >> frame[j];
        }


        #pragma omp parallel shared(frame,processOutput,circles,diameterArray,diameter) 
        {  

            int n=omp_get_thread_num();
            cvtColor( frame[n], processOutput[n], CV_BGR2GRAY);

            GaussianBlur(processOutput[n],  processOutput[n],  Size(9, 9), 2, 2);
            threshold(processOutput[n],  processOutput[n], 21, 250, CV_THRESH_BINARY);

            dilate(processOutput[n],  processOutput[n], Mat(), Point(-1, -1), 2, 1, 1);
            erode(processOutput[n],  processOutput[n], Mat(), Point(-1, -1), 2, 1, 1);

            Canny(processOutput[n],  processOutput[n], 20, 20*2, 3 );

            HoughCircles( processOutput[n],circles[n], CV_HOUGH_GRADIENT, 1, frame[n].rows/8, 100,21, 50, 100); …
Run Code Online (Sandbox Code Playgroud)

opencv

7
推荐指数
1
解决办法
4067
查看次数

setNumThreads(x) 是并行化我的 OpenCV 代码吗?

我真的想知道使用 OpenCV 是否setNumThreads();真的允许我的代码并行运行。我在互联网上搜索了很多,但没有找到我的问题的任何答案。

有人对我的问题有答案吗?

opencv

6
推荐指数
1
解决办法
2413
查看次数

openCV - 以120 fps的速度显示

我正在使用openCV GPU处理120 fps的视频文件.我的问题是:我可以以相同的帧速率显示处理过的图像吗?当我使用imshow显示图像时,fps降低到20~30.我可以更快地显示这些图像(最高120 fps)吗?

谢谢

opencv avi imshow

3
推荐指数
1
解决办法
1751
查看次数

标签 统计

opencv ×4

avi ×1

c++ ×1

imshow ×1