opencv中图像的不同写入时间

时间:2014-01-17 08:54:10

标签: c++ opencv

我写了一个简单的代码来评估opencv中不同图像格式的写入时间......

void main()
{
#define SIZE 1024 ;//2048,4096 ... 
  cv::Mat image = cv::Mat(Size,Size,CV_8UC3,cv::Scalar(255));

  for(int i = 0 ; i < 10 ; i++)
    {
      double t1 = cv::getTickCount();
      QString Address = "Data/" + QString::number(i) + ".bmp";
      cv::imwrite(Address.toUtf8().constData(),image);
      t1 = (cv::getTickCount()-t1)*1000/cv::getTickFrequency();
      qDebug()<<"Writing time is: "<<t1<<"\n";
      cv::waitKey(100);
    }
}

2048 * 2048的输出是:

11.7852 ms - 11.7595 ms - 11.765 ms - 11.5781 ms - 11.5957 ms - 11.4912 ms
248.912 ms - 263.184 ms - 11.8521 ms - 221.688 ms

当我为4096 * 4096运行此代码时,输​​出为:

43.3954 ms - 310.977 ms
1061.97 ms - 624.651 ms
1114.33 ms - 563.779 ms
1055.95毫秒 - 1115.99毫秒
345毫秒 - 1135.97毫秒

你可以看到写作时间因图像而异...这种差异非常大,我不知道为什么所有图像的写入时间都不一样。

我在qt环境下的linux ubuntu 12.04中编写代码。我的PC规格是Core-i7 sandybridge Harddisk 5400rpm和8 GB内部ram

我尝试使用“.jpg”格式的代码,输出为:

写作时间是:
105.14毫秒
105.797毫秒 101.163 ms
103.342毫秒 105.057毫秒 100.315毫秒
105.821毫秒
104.271毫秒 102.357毫秒 102.396毫秒

正如您所看到的那样,以.jpg格式写作时间没有任何实质性差异,但对于.bmp来说,写作时间的突然变化......

是因为硬盘访问时间?如果是这样,为什么这不会以.jpg格式发生?

感谢。

0 个答案:

没有答案