OpenCV经常用到读取图像像素点的操作,还没有自己测试过速度,正好有空试一试。应该还有别的读取方式,以下就只测试了自己用到的7种。有的方法原理是相同。
直接上代码看结果
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
Mat bgrim(300, 300, CV_8UC3);//三通道rgb图像
double tSum[7] = { 0,0,0,0,0,0,0 };//保存七个方法总时间
double time[7] = { 0,0,0,0,0,0,0 };//保存每次运行的时间
double i = 0;
for (i = 0; i < 2; i++)
{
tSum[0] = tSum[0] + time[0];//求每个方法的时间和
tSum[1] = tSum[1] + time[1];
tSum[2] = tSum[2] + time[2];
tSum[3] = tSum[3] + time[3];
tSum[4] = tSum[4] + time[4];
tSum[5] = tSum[5] + time[5];
tSum[6] = tSum[6] + time[6];
//-----------方法一
clock_t startTime1, endTime1;//定义计时
startTime1 = clock();//开始计时
Mat_<Vec3b> m2 = bgrim;
for (int i =