OpenCV相机标定与3D重建(29)过滤由 decomposeHomographyMat 函数分解得到的可能解函数filterHomographyDecompByVisibleRefpoints()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

基于附加信息过滤单应矩阵分解。
cv::filterHomographyDecompByVisibleRefpoints 是 OpenCV 库中的一个函数,用于过滤由 decomposeHomographyMat 函数分解得到的可能解。它通过检查参考点在变换前后的可见性来确定哪些解是合理的。这对于处理相机运动和场景结构的估计特别有用。
该函数通过对给定的参考点进行可见性检查,过滤掉那些会导致不合理的场景解释的解。具体来说,它会检查变换后参考点是否仍然位于图像平面内,并且根据旋转和平移方向判断这些点是否能保持可见。这有助于排除由于错误假设或异常值导致的不合理解。

函数原型

void cv::filterHomographyDecompByVisibleRefpoints
(
	InputArrayOfArrays 	rotations,
	InputArrayOfArrays 	normals,
	InputArray 	beforePoints,
	InputArray 	afterPoints,
	OutputArray 	possibleSolutions,
	InputArray 	pointsMask = noArray() 
)		

参数

  • 参数rotations 旋转矩阵的向量。
  • 参数normals 平面法向量矩阵的向量。
  • 参数beforePoints 单应矩阵应用前的(校正后的)可见参考点向量。
  • 参数afterPoints 单应矩阵应用后的(校正后的)可见参考点向量。
  • 参数possibleSolutions 过滤后表示可行解集的int索引向量。
  • 参数pointsMask 可选的 Mat/Vector,8u 类型,由 findHomography 函数给出的内点掩码。

该函数旨在根据附加信息过滤 decomposeHomographyMat 的输出,如文献 176中所述。方法概要:decomposeHomographyMat 函数返回2个唯一解及其“相反”解,总共4个解。如果我们能够访问单应矩阵变换前后在相机视图中可见的点集,则可以通过验证哪些单应性与所有可见参考点位于相机前方一致来确定哪些是真正的潜在解,哪些是相反解。输入保持不变;过滤后的解集作为现有解集的索引返回。

代码示例


#include <iostream>
#include <opencv2/opencv.hpp>
#include <vector>

using namespace cv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村北头的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值