opencv c++类与模板总结

博客介绍了OpenCV中的基础类型,包括Point*类、Scalar类、size类、Rect类等的构造和行为,如点乘、叉乘、判断点是否在区域内等操作。还介绍了固定矩阵类、固定向量类、复数类等的构造、运算及成员访问,以及辅助对象、智能指针、异常处理等相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础类型

Point*类
构造(赋值):Point2i p1(x,y)Point3i p2(x,y,z);
行为:点乘 float x=p1.dot(p2);
叉乘:p1.cross(p2);
判断点是否在r内:p.inside®

Scalar类 四维点类
构造 Scalar s(x0,x1,x2,x3)
元素相乘:s1.mul(s2);
共轭:s.conj();
真值测试:s.isReal();

size 类
构造:Size sz(w,h)
sz.width sz.height sz.area();面积

Rect 类 矩形
构造:Rect r(x,y,w,h)起始点与大小构造 Rect(p1,p2)两对角构造
计算面积:r.area();
提取左上,右上角:r.tl();r.br();
判断p点是否在矩形r内:r.contains§;
交集:Rect r3=r1&r2;
并集(包含两矩形的最小矩形)Rect r3=r1|r2;
平移:rx=r+x;
比较是否相等:bool eq=(r1==r2)

RotatedRect
构造:RotatedRect rr(p1,p2);两点法 RotatedRect (p,size,angle);点 大小 角度

固定矩阵类 Matx{1~6} {1~6}{f,d}
构造:Matx33f m(x1,x2,x3,x4,x5,x6,x7,x8,x9); Matx31d n(1,2,3);
m33f=cv::Matx33f::all(x); 构造相同元素的矩阵
m16f=cv::Matx16f::zeros();全0 Matx23d::ones();全一 Matx33f::eye();单位矩阵
m31f=Matx33f::diag();能容纳对角矩阵的
m33f=Matx33f::randu(min,max);均匀分布的矩阵
m33f=Matx33f::nrandn(mean,variance)正态分布矩阵
成员访问:
m(i,j),m(i);
矩阵运算
m1=m0;m1m0;m0+m1;m0-m1;//m0,m1均为矩阵
单例代数
a
m1 m/a
比较
m1==m2;m1!=m2;
点积
m1.dot(m2);
m1.ddot(m2);
改变矩阵形状
m91f=m33f.reshape<9,1>();
m44f=(Matx44f)m44d;
提取(i,j)处的2×2矩阵:m44f.get_minor<2,2>(i,j);
提取行列
m14f=m44f.row(i);
m41f=m44f.col(j);
对角线:m41f=m44f.diag();
计算转置:n44f=m44f.t();
逆矩阵:n44f=m44f.inv(method);
解线性系统:m31f=m33f.solve(rhs31f,method)
m32f=m33f.solve<2>(rhs32f,method);
每个元素的乘法 m1.mul(m2);

固定向量类:
cv::Vec{2,3,4,6}{b,s,w,I,f,d}
构造函数
Vec2f v2f(x1,x2);Vec6d v6d(x1,x2,x3,x4,x5,x6);
成员访问:v4d[i];v3w(j);both OK
叉乘 v3f.cross(u3f);

复数类
Complexf z1(re0,im1);
z1.re; z.im;
复共轭 z2=z1.conj();

辅助对象
控制终止条件:TermCriteria(int type,int maxCount,double epsilon)
type: cv::TermCriteria::COUNT or cv::TermCriteria::EPS
确定一个连续的整数序列:
Range(int start,int end)//include start but not include end
智能指针
方式:cv::Ptr<cv::Matx33f>()
cv::Ptr <cv::Matx33f> p=makePtr <cv::Matx33f> ();
成员函数:empty()检查是否销毁或NULL
delete_obj()???

异常处理:Exception类
成员:code,err,func,file,line
内置宏(用于自己生成异常)
CV_Error(errorcode,description)
CV_Error_(errorcode,printf_fmt_str,[printf-args])
CV_Assert(condition)
CV_DbgAssert(condition)

cv::DataType<>模板
???
??

cv::InputArray and cv::OutputArray
用以返回各种数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值