今天是开始看opencv源码的第一天,想看看opencv2.0以上版本是怎么实现的。当然,这只是最初的一步,现在我就连opencv的基本框架都还没能弄清楚呢,现在来看只是为了看看代码是怎么实现的。
好了,今天的第一课:imread()函数的解析。
声明:
Mat imread( const string& filename, int flags );//这很标准的写法,传入一个string类型的常量引用。
下面是定义:
Mat imread( const string& filename, int flags )
{
Mat img;//创建一个变量
imread_( filename, flags, LOAD_MAT, &img );//这里用的是地址符号,为什么呢?当然是为了改变其里面的数据了。
return img;
}
这个函数是就这么几行么?这么几行能干什么呢?其实它把所有的事情交给了imread_()函数。下面我们跟进去:
声明:
static void*
imread_( const string& filename, int flags, int hdrtype, Mat* mat=0 );
定义:
static void* //返回的是一个空指针,其实在上面,这个返回值时没有用到的。
imread_( const string& filename, int flags, int hdrtype, Mat* mat=0 )//filename: