OpenCV stitching_detailed.cpp 笔记
根据4.0.0-pre的文档。
1.
函数
template<typename T> Ptr<T> cv::makePtr()
返回 一个Ptr<T>类型的对象。
2.
SurfFeaturesFinder 为类名,继承自cv::detail::FeaturesFinder类。FeaturesFinder类定义了find( )函数并重载了( )运算符,( )运算符将调用find( )。
FeaturesFinder对象的collectGarbage()方法将主动清理内部存储。
3.
上述FeaturesFinder类的对象的find( )方法将结果保存在一个 cv::detail::ImageFeatures struct中。ImageFeatures 结构具有4个元素,分别是
UMat descriptors;
int img_idx;
Size img_size;
std::vector< KeyPoint > keypoints;
其中UMat可以理解成给予OpenCL进行自动加速的Mat类型。参考https://jeanvitor.com/opencv-opencl-umat-performance/
KeyPoint是存储特征点的通用类。img_idx元素用作用户自行定义图像文件的索引。
4.
在初期处理每个输入图像并提取feature时,使用Mat.clone( )方法进行数据复制。Mat的clone( )方法和copyTo( )方法都可进行Mat的deep copy,但是他们有不同行为。clone( )函数总是会修改被赋值的目标对象的地址,而copyTo( )会尝试复用目标对象的存储空间(尤其是源和目标的数据类型与数量完全一致时)。参考 https://stackoverflow.com/ques