不同机器上的性能问题

时间:2014-02-25 08:59:55

标签: c++ performance opencv

我编写了一个使用opencv的C ++程序,我在VisualStudio 2010中使用发布模式将其编译为Win32应用程序,opencv库是动态链接的,所以我只需将所需的dll复制到程序的根文件夹中(这样我就可以运行了)它在其他计算机上),该程序跟踪视频中的人,并在我的计算机上运行它时工作正常,但是当我在其他机器上运行它时,它工作但速度慢了65%,起初我认为它是自己的机器这很慢,但后来我编写了另一个小程序(代码如下),其唯一目的是读取视频文件并以原始视频速度播放。不幸的是我也遇到了同样的问题,它在我的计算机上运行良好,但是当我在其他计算机上运行时,它减慢了65%(或多或少),我是c ++ / opencv的新手,我没有真正的想法为什么会发生这种情况我希望有人可以启发我,是一个动态链接一个坏主意?我应该将opencv编译为一个静态库(我还不知道该怎么做,并且会对这个问题的任何帮助表示感谢)。还是别的什么?

#include "opencv\cv.h"
#include "opencv\highgui.h"


int main(){

    cv::VideoCapture vidBuffer;
    if(!vidBuffer.open("res/test.mp4")){
        std::cerr << "Cant find \"res/test.mp4\"\n";
        system("pause");
        return -1;
    }
    int fps = vidBuffer.get(CV_CAP_PROP_FPS);
    int frameTime = 1000/fps;

    //video loop
    cv::Mat frame;
    for(char c=-1;;c=cv::waitKey(frameTime)){
        if(!vidBuffer.read(frame)||c==27)
            break;
        cv::imshow("Vidoe test", frame);
    }
    //loop emd

    vidBuffer.release();
    return 0;
}

0 个答案:

没有答案