为了细致掌握程明明CVPR 2014 oral文章:BING: Binarized Normed Gradients for Objectness Estimation at 300fps的代码,的好好学习opencv库啊,从基础走起。

(1)CV_Assert函数作用:

CV_Assert()若括号里的表达式值为false。则返回一个错误信息。

(2)Mat使用方法

1、使用准备:

 using  namespace  cv;



2、Mat的声明



Mat m=Mat(rows, cols, type);

Mat m=Mat(Size(width,height), type);

Mat A=Mat(3,4,CV_32FC1);

Mat B=Mat(4,3,CV_32FC1);



3、Mat赋值



vector<Point3f>v;//suppose it is already full

Mat m1=Mat(v,true);//boolean value true is necessary in order to copy data from v to m1

CvMat *p1;

Mat m2=Mat(p1);



4、Mat之间运算



MatC=2*A*B;



Mat C=C.inv();//Now C is its own inverse matrix



Mat D=A.t();//D is the transposed matrix of A



Mat a=Mat(4,1, CV_32FC3);//a is 4x1, 3 channels



Mat b=a.reshape(1);//b is 4x3, 1 channel





5、单通道Mat元素读写



Mat a=Mat(4,3, CV_32FC1);

floatelem_a=a.at<float>(i,j);//access element aij, with i from 0 to rows-1 and j from 0 to cols-1

Point p=Point(x,y);

floatelem_a=a.at<float>(p);//Warning: y ranges from 0 to rows-1 and x from 0 to cols-1





6、多通道Mat元素读写



template<typename _Tp> _Tp& at(int y,int x);              // cxcore.hpp (868)

template<typename _Tp>const _Tp& at(int y,int x)const;    // cxcore.hpp (870)

template<typename _Tp> _Tp& at(Point pt); // cxcore.hpp (869)

template<typename _Tp>const _Tp& at(Point pt)const;       // cxcore.hpp (871)

// defineded in cxmat.hpp (454-468)

typedefVec<float,2>Vec2f;// cxcore.hpp (254)



// we can access the element like this :

Mat m(Size(3,3), CV_32FC2 );

Vec2f& elem = m.at<Vec2f>( row , col );// or m.at<Vec2f>( Point(col,row) );

elem[0]=1212.0f;

elem[1]=326.0f;

float c1 = m.at<Vec2f>( row , col )[0];// or m.at<Vec2f>( Point(col,row) );

float c2 = m.at<Vec2f>( row , col )[1];

m.at<Vec2f>( row, col )[0]=1986.0f;

m.at<Vec2f>( row, col )[1]=326.0f;





7.选取Mat上指定区域方法





Mat src; Rect rect;

Mat dst = src(rect); 或者Mat dst(src,rect);



注意:cv::Mat A;



A.row(i) = A.row(j); // 错误

A.row(i) = A.row(j) + 0; // 正确

最新文章

  1. [No00008B]远程桌面发送“Ctrl+Alt+Delete”组合键调用任务管理器
  2. [Android]使用AdapterTypeRender对不同类型的item数据到UI的渲染
  3. db2 常用命令(二)
  4. Cocos2d-x 3.0final 终结者系列教程01-无论是从cocos2d-x2.x升级到版本cocos2d-x3.x
  5. 532. K-diff Pairs in an Array
  6. java_web学习(十一) 层的概念与应用
  7. [HNOI 2016]网络
  8. 利用分支限界法求解单源最短路(Dijkstra)问题
  9. for循环和foreach循环遍历集合的效率比较
  10. python自动化开发-[第十三天]-前端Css续
  11. IoGetRelatedDeviceObject学习
  12. 通过滑动条控制Cube旋转
  13. Docker基础教程(安装篇)
  14. 详解Java Spring各种依赖注入注解的区别
  15. Python Env
  16. Redis on Spark:Task not serializable
  17. Alpha阶段第1周Scrum立会报告+燃尽图 04
  18. UESTC 2015dp专题 G 邱老师玩游戏 背包dp
  19. Python爬取LOL英雄皮肤
  20. maven中net.sf.json报错的解决方法(转载)

热门文章

  1. Js获取操作系统版本 &amp;&amp; 获得浏览器版本
  2. react之webpack
  3. l5-repository基本使用
  4. JavaScript中数据类型的转换规则
  5. 常用的四种设计模式 PHP代码
  6. 集训第六周 数学概念与方法 UVA 11722 几何概型
  7. Python数据结构--链表
  8. C++——&quot;%&quot;运算符
  9. xcap发包工具的简单使用2(发送报文)
  10. HDU 1079 简单博弈