一、如何计算效率
要计算程序运行的效率,就需要获得程序运行到当前位置所用运行的时间
opencv中提供两个简便的计时函数getTickCount()和getTickFrequency()
double t = (double)getTickCount();
// do something ...
t = ((double)getTickCount() - t)/getTickFrequency();
使用方式如上
二、代码测试
编写代码实现
创建一张500*500 3通道图像,连续向3通道写入随机数的测试程序,然后同等条件下测试效率
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
RNG rng(1234);
void p_RW_Pixel(Mat &src){
for (int row = 0; row < src.rows; row++){
Vec3b * cur = src.ptr<Vec3b>(row); // 获取当前行的指针
for (int col = 0; col < src.cols; col++){
if (src.channels() == 3){
cur[col][0] = rng.uniform(0, 255) % 255; // b赋值随机颜色
cur[col][1] = rng.uniform(0, 255) % 255;
cur[col][2] = rng.uniform(0, 255) % 255;
}
}
}
}
void iter_RW_Pixel(Mat &am