共享库中的时间与可执行文件相比较高,为什么?

时间:2016-06-08 14:07:50

标签: c++ opencv dll

我的所作所为:

1.我在c ++中构建了opencv facedetection代码并运行可执行文件

2.我在facedetection代码中计算了 detectmultiscale 时间

#include <cstdlib>
#include <iostream>
#include <sys/stat.h>
#include <time.h>
#include "opencv2/opencv.hpp"
#include <ctime>
using namespace cv;
using namespace std;

int main(int argc, char** argv)   
{
    VideoCapture cap(0);
    if ( !cap.isOpened() )  // if not success, exit program
    {
         cout << "Can not open camera or video file" << endl;
         return -1;
    }
    CascadeClassifier c;
    if (!c.load("haarcascade_frontalface_alt.xml"))
       {
        printf("Error in loading the xml\n");
        return (-1);
       }
    while(1)
    {
        
    Mat image;     
    cap>>image;
    std::vector<Rect> faces;
    clock_t begin=clock();
    c.detectMultiScale( image, faces , 1.1 , 2, 0 | CASCADE_SCALE_IMAGE, Size(30, 30) );
    clock_t stop=clock();
    double secs = double(stop - begin) / (CLOCKS_PER_SEC)*1000;
    cout<<"Face Detection time in ms= "<<secs<<endl;
    for( int i = 0; i < faces.size(); i++ )
    {
       rectangle(image,faces[i],cv::Scalar(0,0,255),2);  
    }
    imshow("Faces",image);
    if(waitKey(10) >= 0) break;
    }
    return 0;
}

3.上述代码中detectmultiscale所用的时间约为 50 ms

4.我将上述代码更改为共享库,并从测试代码

调用共享库
 testing test;
 test.facedetection(frame);

5. detectmultiscale所需的时间大约是 85 ms

6.任何人都可以告诉,为什么共享库中的时间与可执行文件中的时间相比较高?

0 个答案:

没有答案