以下测试的图片,均为5488x3672分辨率的三通道彩色图。
分别使用opencv和halcon存图,测试速度,存100次取平均值,结果如下:
cpp
image size:5488 3672
opencv jpg save time = 0.12809s
opencv bmp save time = 0.02197s
halcon bmp save time = 0.07495s
halcon jpg save time = 0.04189s
结果显示使用opencv存bmp的速度最快,存一张大图的时间大概为22ms左右。
在机械硬盘上,磁盘的IO一般为100M/s左右,若频繁存bmp的大图,磁盘的IO不够,磁盘写入的速度太慢,会影响程序的运行。将大图resize到原来的1/4,再存图:
cpp
image size:1372 918
opencv jpg save time = 0.01052s
opencv bmp save time = 0.00412s
halcon bmp save time = 0.00555s
halcon jpg save time = 0.00344s
当存小图的时候,使用halcon存bmp的速度最快。
图片clone的速度测试,图片为:
cpp
cv::Mat image1 = image.clone() //image_clone: 17.5346 毫秒
QImage qimg1 = qimg.copy(); //qimage_copy: 6.42545 毫秒
QImage qimg = CvMatToQImage(cv_mat); //matToQImage: 28.9049 毫秒