这确实是一个非常有趣的问题.正如@hatboyzero指出的那样,变量的含义相当简单:

> Nm是匹配的数量(在重叠区域中,因此已经删除了明显的异常值).

> Ni是找到Ransac单应性后的​​内部数.

> C是两张图像匹配的信心.

匹配的背景

通过在所有图像中找到兴趣点并为它们计算描述符来完成建立全景图.开发了这些描述符,如SIFT,SURF和ORB,以便可以检测到图像的相同部分.它们只是一个中等尺寸的矢量(典型的是64或128维).通过计算L2或两个描述符之间的某个其他距离,可以找到匹配.通过术语Nm描述找到一对图像中的多少匹配.

请注意,到目前为止,匹配仅通过兴趣点周围的图像区域的外观来完成.通常,许多这些匹配都是完全错误的.这可能是因为描述符看起来相同(想想:重复对象,如多窗口建筑物上的窗台,或树上的叶子),或者因为描述符只是有点太无法提供信息.

常见的解决方案是添加几何约束:图像对是使用相同的相机从相同的位置拍摄的,因此在一个图像中接近的点也必须在另一个图像中接近.更具体地说,所有点必须经历相同的转换.在全景情况下,相机围绕相机镜头系统的节点旋转,这种转换必须是2D单应性.

Ransac是找到最佳转换的金标准算法,以及与此转换一致的所有匹配.这些一致匹配的数量称为Ni. Ransac通过在这种情况下随机选择4个匹配(参见论文第3.1节)并将单应性拟合到这四个匹配.然后,计算所有可能匹配的匹配数将与此单应性一致.重复500次(见论文),最后采用内部最多的模型.然后使用所有内点重新计算模型.该算法的名称来自RANdom SAmple Consensus:RanSaC.

信心期限

对我来说,问题是关于这种神秘的信心.我很快发现了计算的地方.

// These coeffs are from paper M. Brown and D. Lowe. "Automatic Panoramic Image Stitching

// using Invariant Features"

matches_info.confidence = matches_info.num_inliers / (8 + 0.3 * matches_info.matches.size());

// Set zero confidence to remove matches between too close images, as they don't provide

// additional information anyway. The threshold was set experimentally.

matches_info.confidence = matches_info.confidence > 3. ? 0. : matches_info.confidence;

mentioned paper

在第3.2节(“图像匹配验证的概率模型”)中有一些更详细的含义.

阅读本节,有些事情脱颖而出.

>他们的模型中有很多变量(主要是概率).这些值在论文中定义,没有任何理由.以下是关键句:

Though in practice we have chosen values for p0, p1, p(m = 0), p(m = 1) and pmin, they could in principle be learnt from the data.

所以,这只是一个理论上的练习,因为参数已经凭空剔除.注意原则上可以学习.

>论文13中的置信度计算.如果读取正确,则表示matches_info.confidence表示两个图像之间的正确匹配,如果其值大于1.>当置信度高于3时,我认为没有任何理由去除匹配(将置信度设置为0).这只意味着有很少的异常值.我认为程序员认为大量的匹配结果是异常值意味着图像重叠很多,但这并不是由此背后的算法提供的. (简单地说,匹配是基于功能的外观.)

图像拼接的c语言程序,c – 使用OpenCV进行图像拼接细节相关推荐

  1. 利用C++中的opencv进行图像拼接

    这篇文章依旧是记录采用C++复现图像拼接过程解决遇到的问题.因为自己没有学过C++,大学学的C考完试立马还给老师了,Python也是现学的,只会一点点MATLAB,所以遇到的问题和解决都很基础,目的是 ...

  2. 一个c语言程序的开发环境,C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序...

    在C语言入门系列中,我们使用Visual studio 2013 Professional作为开发工具.本篇详细介绍如何安装Visualstudio 2013 Professional并写出我们第一个 ...

  3. c语言程序设教材计 乌云高娃,C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt...

    C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt 主要内容 课程概述 为什么选择C语言作为入门课程? C语言 ...

  4. 在纸上写好一个c语言程序后,上机运行的基本步骤为,c基本概念(选择题).docx

    PAGE / NUMPAGES 一.单选题 1.下面叙述中正确的是: (A) 在C语言程序中,main()函数必须放在程序的开始位置 (B) 在C语言程序中,要调用的函数必须在main()函数中定义 ...

  5. 周信东c语言实验二实验报告,周信东主编最新版C语言程序设计基础实验一实验报告.doc...

    周信东主编最新版C语言程序设计基础实验一实验报告.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我 ...

  6. linux中编译C语言程序

    1.首先安装gcc编辑器 yum install gcc* -y 2.编写C语言程序 [root@test ~]# vim aa.c #include<stdio.h> int main( ...

  7. java打印四行等腰三角形_(c语言程序案例.doc

    (c语言程序案例 上机注意: 1.请大家在VC6.0中建立工程,编写代码,编译(compile),链接(build),运行(execute program)后,输入题目中的例子输入,在输出与题目中的例 ...

  8. c语言程序与设计苏小红,c语言程序设计苏小红

    <实验教学示范中心建设教材·国家精品课程主讲教材:C语言程序设计(第2版)>是一本兼具趣味性和实用性的C语言程序设计教材.全书由13章组成,内容包括:为什么要学C语言,C数据类型,简单的算 ...

  9. c语言储存10的500,c语言程序基础练习题500道

    1.以下四个选项集的非c语言中介语选项为(a): A) define B) gect C) include D) while IF char scanf go Type printf case pow ...

最新文章

  1. S5PV210开发 -- UART 详解
  2. C++对象模型3--无重写的单继承
  3. 从WordCount看Spark大数据处理的核心机制(2)
  4. telegram定时消息_ActiveMQ(18):Message之延迟和定时消息投递
  5. 稀疏矩阵转置 java代码_三元组稀疏矩阵的快速转置
  6. 创意c语言程序设计,重庆理工大学-c语言程序设计基础教程_习题答案(纪纲_金艳).doc...
  7. Android Bitmap Drawable 常用摘要
  8. MySQL5.7安装手册
  9. Java学习之JavaWeb篇
  10. Java身份证号码识别系统(开源项目)
  11. Android应用程序四大组件分别是什么?各个组件所起到的作用是什么?
  12. 数学建模与数据分析中的主成分分析
  13. 使用Best Trace工具查看VPS的去程和回程线路的路由
  14. 《国史通鉴》历代一句话概括总结+大脉络记历史~~
  15. 特别详细的数据中心运维管理方案
  16. php中文分隔符,php断句无乱码,PHP根据分隔符断句,中英文无乱码
  17. CRC校验原理及CRC-8简单校验函数设计
  18. sql -803 DB2修改主键起始值
  19. matlab景深合成算法,简单明了讲解景深合成
  20. excel如何拆分数据

热门文章

  1. MATLAB串并转换模块,simulink串并转换
  2. SQL 查询--日期条件(今日、昨日、本周、本月)
  3. zkCli.sh命令使用
  4. 手把手教你Android标准App的四大自动化测试法宝
  5. 股权转让项目:广元红运健康酒业有限公司67%股权转让
  6. 用tcgames快速投屏方式进行刺激战场手游安卓直播投屏详细教程
  7. Docker出售企业业务后获得3500万美元融资并迎来新CEO
  8. JavaScript事件流模型
  9. leaflet使用feach方法加载俄罗斯国界线geojson,可以拖拽图层(110)
  10. 微信小程序之歌词ktv效果