Mat_类模板小计

1.Mat_类的特点、应用场合?

2.引用和指针的转化(引用的&和取址&的区别)?

3.怎么通过引用让两个变量指向同一块地址?

4.Mat_类访问矩阵元素的快捷方式?

 

Mat_类一般应用于矩阵(matrix)的运算。

Mat_类继承自Mat类,对数据类型更加灵活,可定义为Mat_<_Tp>的矩阵形式

    template<typename _Tp> class Mat_ : public Mat //定义类模板的方式
    {
    public:
        // ... some specific methods
        //         and
        // no new extra fields
    };

Mat类和Mat_类都没有虚方法,因此对这两个类的引用和指针可以转化(但是要小心)eg:

    // create a 100x100 8-bit matrix
    Mat M(100,100,CV_8U);
    // this will be compiled fine. no any data conversion will be done.
    Mat_<float>& M1 = (Mat_<float>&)M;//只是为了让引用时的变量类型一致
    // the program is likely to crash at the statement below
    M1(99,99) = 1.f;

其中Mat_<float>& M1 = (Mat_<float>&) M,引用M1和M指向同一块地址,这块地址存放的数据还是CV_8U类型。&M1 == &2(引用的类型必须和其绑定的变量类型一致,所以M1(99,99) = 1.f会崩溃),注意&不是取址运算符,而是起标志作用


Mat_ can be more convenient if you use a lot of element
access operations and if you know matrix type at the compilation time. )如果在编译时使用了大量的元素访问操作,并且知道矩阵类型,MAT_可以更方便。直接用Mat_类型的变量M_(row,col)访问

While Mat is sufficient in most cases, Mat_ can be more convenient if you use a lot of element
access operations and if you know matrix type at the compilation time. Note that
`Mat::at(int y,int x)` and `Mat_::operator()(int y,int x)` do absolutely the same
and run at the same speed, but the latter is certainly shorter:

    Mat_<double> M(20,20);
    for(int i = 0; i < M.rows; i++)
        for(int j = 0; j < M.cols; j++)
            M(i,j) = 1./(i+j+1);//不使用at,直接用()索引,更方便
    Mat E, V;
    eigen(M,E,V);
    cout << E.at<double>(0,0)/E.at<double>(M.rows-1,0);

 

取于网络,回归于网络。 (人力) 项目组成员访谈表.mmat (全局) 项目主视图.mmat (全局) 项目会议.mmat (基础) 项目定义.mmat (控制) 项目报告.mmat (控制) 项目状态报告.mmat (控制) 项目状态报告列表.mmat (结项) 培训.mmat (结项) 项目评审.mmat (计划) 工作分类结构(WBS).mmat (计划) 项目干系人满意定义.mmat (计划) 项目沟通路径.mmat (计划) 项目组成员.mmat (计划) 项目组成员列表.mmat (计划) 项目计划包含阶段.mmat (计划) 项目资源.mmat (计划) 项目风险评估.mmat 90天角色转换-new.mmap New Blank Map.mmat Outlook控制盘.mmat SWOT 分析.mmat SWOT分析法.mmap 一周计划.mmat 三年前的选择.mmap 个人简历.mmat 举办活动.mmap 书籍出版.mmat 企业组织图 .mmap 会议组织.mmat 会议记录.mmap 会议记录1.mmap 公司架构图.mmat 写作计划.mmap 决策.mmap 创建流程.mmat 加强抵御灾害风险的能力.mmap 口才(利兹).mmap 国家信息化发展战略.mmap 培训计划.mmat 头脑风暴 brainstorming.mmap 工作找寻.mmat 工艺流程.mmat 市场战略.mmat 市场策划.mmat 市场策略.mmat 平衡积分卡.mmat 平衡计分卡.mmap 待办事宜1.mmat 待办事宜2.mmat 待办事项备忘录.mmap 战略决策-SWOT分析.mmat 战略决策-SWOT分析实例.mmat 战略规划.mmat 整理旅行箱.mmat 文件处理 Process Documentation.mmap 旅游计划1.mmat 旅游计划2.mmat 旅行计划.mmap 格雷大学课程计划.mmap 模板汉化说明.txt 汽车销售流程图.mmap 状态报告.mmat 盈亏分析 Win_Loss_Analysis.mmap 空白图表(Tablet).mmat 空白图表.mmat 简历.mmap 组织会议.mmat 组织架构图(一).mmat 组织架构图(三).mmat 组织架构图(二).mmat 组织架构图(四).mmat 营销策略 Marketing Strategy.mmap 著作出版.mmat 行李清单.mmap 论文计划 Paper Planning.mmap 资产负债表.mmat 软件公司技术管理.mmap 软件需求分析工作.mmap 进行决策.mmat 部门架构图.mmat 项目仪表板.mmat 项目审核检查单.mmap 项目工作交流.mmap 项目控制.mmat 项目时间线.mmat 项目时间表.mmat 项目状态.mmat 项目管理.mmat 项目规划.mmat 项目规范.mmat 项目计划 projectPlanning.mmap 项目进展报告 Status Report.mmap 风险管理.mmat 等等...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值