C++中对多个数取其中最小值

头文件<vector><algorithm>

vector<int> v = { a,b,c };
    
    auto min_it = min_element(v.begin(), v.end());

    int MIN  = *min_it;

运用vector函数创建v

利用min_element函数查询v中最小数赋值给min_it

将min_it赋值给Min

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 基于C++实现的单目多视图立体重建系统源码+项目说明.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 单目多视图立体重建系统,此项目是针对单目多视图立体重建的方法。本项目从分为四个部分:** * 据读 * 特征点提和匹配 * 稀疏重建,生成稀疏点云以及估计视图位姿 * 稠密重建,生成每张视图对应的深度图(这里可以进一步生成稠密点云,通过深度图) ### 据读 主要读输入视图据,对于无内参的图形,并估计内参(采用张正友相机标定法)。 ### 特征点提和匹配 * 特征点提,本项目采用两种特征提方法,STIF算法和ORB,你可以根据自己的据和时间要进行选择,同时你也可以采用一些神经网络的方法来代替此方法。 * 特征点匹配,对于不同的据量,实则有三种匹配方法,这里只提供第一种: * 对于输入图片属于非连续稀疏图片,采用两两匹配的方式,注意这里不用全部两两匹配,例如A-B匹配完,不用再执行B-A匹配。匹配示意图类似于上三角矩阵。只用匹配对角线以上或者以下的图像对,降低匹配时间。 * 对于连续时间帧图片,采用和相邻时间帧图片进行匹配。例如匹配 [t-50,t+50]区间之间的。 * 对于大据量图片进行匹配,需要采用词汇树进行匹配。降低匹配复杂度。 以上匹配均采用多线程实现 ### 稀疏重建 本项目给的示例代码是全局增量重建代码,主要分为以下步骤: 1.计算每个图像特征点的Track,也就是图像每个特征点和几个其他图像特征点对应。为了让重建结果更加鲁棒,对于Track小于阈值的特征点进行滤除。 2.建立图像之间的Edge,滤出图像间Track对大于一定阈值的建立Edge 3.选重建初始图像对,这里选的思想是,sum=0.6*AB+0.2*A+0.2*B;这里AB是A图像和B图像对应特征点的个数,A是A图像与所有其他图像特征点的个数和,B是B图像与所有其他图像特征点的个数和。sum最大的图像对。同时该图像对应该满足夹角在一定阈值范围里,保证三角化计算不会有太大误差。 4.三角化三维点云信息,这里对于步骤三选的图像对,选与其他图像特征点最大的图像的相机位置作为世界坐标系,然后通过分解本质矩阵解另一个图像的位姿信息进行三角化。 5.选一下一张待重建图像,这个选的标准是,下一张待重建图像对应该满足特征点和已重建的三维点交集最大。可以保证通过PNP方法初始值相对正确的相机位姿。 6.进行bundle_adjuestment。这里需要对三维点云进行预处理,淘汰那些重投影误差大于一定阈值的三维点,淘汰相机参不合理的图像。防止在bundle_adjuestment过程拉偏优化方向。主要借助Ceres库实现,Ceres库主要是一些优化算法例如牛顿高斯法,LM算法等等,借助最小二乘法和泰勒展开去计算让代价函值最小的变量移动方向和步长。 7.继续重复第5-6步,直到没有合适的图像 8.保存将相机位姿和三维点云 9.对重建结果进行评价,通过.ply文件直接肉眼查看重建形状是否正确,也可以通过统计重投影误差的平均值、最大值、最小值、方差来进行评价。 ### 稠密重建 稠密重建阶段,本项目采用的是patchMatchStereo的方法,为了提高速度通过CUDA实现并行处理。 在稀疏重建阶段已经实现了图像位姿的解,因此本项目没有采用传统PatchMatchStereo极线对齐的方法,而且是通过单应矩阵来计算对应同名点,并且支持多视图PatchMatchStereo。其一些实现方法参考了《Massively Parallel Multiview Stereopsis by Surface Normal Diffusion》这篇论文。核心算法主要有四个部分: * 多视图代价计算:在此部分,代价计算的方式和原始的PatchMatchStereo一致。对于多视图代价计算,通过计算参考视图和每个其他视图之间的代价,淘汰不满足阈值的代价,并其平均值,作为最终代价。 * 空间传播:考虑到原始的PatchMatchStereo算法需要通过左上和右下来传播,但是对于并行计算无法实现,因此应该红黑块的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值