论计算机图形学算法数学原理及C++实现(2)

    说到计算机图形处理,首选工具为opencv(免费,开源,成熟项目,提供多种语言接口)。以下将统一使用opencv开发语言C++作为程序语言。C++ 的opencv说难也难,说容易也容易。如果读者熟悉C++精髓之模板类、模板函数、函数重载、继承等知识点,学习opencv本身会像学习STL那么容易并且很多两者间互相通用或者极其相似。话说回来,为了更加详细地跟大家讨论算法细节,我会花些篇幅介绍opencv的一些基本知识,在介绍的同时也就会讨论算法本身。

    先来说说opencv里面的一些基本数据结构吧。 

  1. C语言基本数据结构(类如 int,float,double等等)
  2. 标准模板库里定义的数据类型(如opencv大量使用的vector)
  3. opencv自定义的抽象数据类型或者结构体(如 Vec,Matx等)  

    前两种就不详说了,不懂的翻查C++ primer。让我们主要纠结第三种,这也是本节重点。

    其实opencv自定义的数据结构基本都是向量和矩阵,向量又是矩阵的一个特殊子类,无非是只有一列的矩阵,但仍然有很大的意义专门介绍一下向量。下面我们从最基本的Matx开始,然后看各种向量类是如何继承Matx类的。

    Matx类是opencv自定义的矩阵类,用来保存矩阵的各种信息,其更是一种模板类,所以使我们可以自定义类的数据类型。Matx类有如下初始形式:

   

    比如要建立一个元素为浮点的3X3矩阵,可以Matx<float,3,3> mat来初始。

    Ve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值