OpenCV stitching_detailed.cpp 笔记

本文详细解析了OpenCV的stitching_detailed.cpp,涵盖从特征提取、匹配、旋转估计到图像融合的全过程。重点讲解了FeaturesFinder、MatchesInfo、FeaturesMatcher等关键类的用途,以及Estimator、BundleAdjusterBase在参数调整中的作用,同时涉及图像校正、旋转模型和曝光补偿等概念。

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

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/questi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值