aihot  2017-05-01 07:51:47  OpenCV |   查看评论   

 OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年

告诉我M.at<float>(3, 3)在Debug模式下运行缓慢,推荐我使用M.ptr<float>(i)此类方法。这不禁勾起了我测试一下的冲动。下面就为大家奉上我的测试结果。

我这里测试了三种操作Mat数据的办法,套用流行词,普通青年,文艺青年,为啥第三种我不叫2b青年,大家慢慢往后看咯。

普通青年的操作的办法通常是M.at<float>(i, j)

文艺青年一般会走路线M.ptr<float>( i )[ j ]

暴力青年通常直接强制使用我第40讲提到的M.data这个指针

实验如下:

  1. t = (double)getTickCount();  
  2. Mat img1(1000, 1000, CV_32F);  
  3.   
  4. for (int i=0; i<1000; i++)  
  5. {  
  6.     for (int j=0; j<1000; j++)  
  7.     {  
  8.         img1.at<float>(i,j) = 3.2f;  
  9.     }  
  10. }  
  11. t = (double)getTickCount() - t;  
  12. printf("in %gms\n", t*1000/getTickFrequency());  
  13. //***************************************************************  
  14. t = (double)getTickCount();  
  15. Mat img2(1000, 1000, CV_32F);  
  16.   
  17. for (int i=0; i<1000; i++)  
  18. {  
  19.     for (int j=0; j<1000; j++)  
  20.     {  
  21.         img2.ptr<float>(i)[j] = 3.2f;  
  22.     }  
  23. }  
  24. t = (double)getTickCount() - t;  
  25. printf("in %gms\n", t*1000/getTickFrequency());  
  26. //***************************************************************  
  27. t = (double)getTickCount();  
  28. Mat img3(1000, 1000, CV_32F);  
  29.  1/4    1 2 3 4 下一页 尾页
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]