matlab - 基本矩阵在 matlab 中不断变化,但使用 open cv 时相同。可能是什么原因?

标签 matlab opencv image-processing matlab-cvst

我已经使用下面显示的函数计算了基本矩阵

[fMatrix, epipolarInliers, status] = estimateFundamentalMatrix(...
   matchedPoints1, matchedPoints2, 'Method', 'RANSAC', ...
   'NumTrials', 10000, 'DistanceThreshold', 0.1, 'Confidence', 99.99);

但在这种情况下,每次运行程序时基本矩阵都会不断变化。

但是当我在打开的 cv 中使用下面显示的代码时,我每次运行程序时都会得到相同的基本矩阵。代码如下所示

 cv::Mat fundamental=cv::findFundamentalMat(cv::Mat(selPointsLeft),cv::Mat(selPointsRight),CV_FM_RANSAC);

在这两种情况下,我都使用冲浪特征来提取匹配特征。Matchpoints1=selpointsleft 和 matchpoints2=selpointsright。 这可能是什么原因?

最佳答案

RANSAC 是“RANdom SAmple Consensus”的缩写。也就是说,我们必须预期输出矩阵会随着样本的随机选取而发生变化。

在 OpenCV 中,值是从均匀分布的随机值列表中选取的。因此,我们每次运行代码时都会得到相同的值。

在 Matlab 中,它似乎选择了一个完全随机的值,因此出现了问题。你将不得不检查是否有办法random-seed随机值的选取,我对此并不确定。

关于matlab - 基本矩阵在 matlab 中不断变化,但使用 open cv 时相同。可能是什么原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771005/

相关文章:

Matlab 图形用户界面 : Dynamically changing the popup menu

image-processing - 使用 Electron js 转换原始图像

c++ - 在opencv中拼接2张图片

使用 LibSVM 进行分类

c++ - OpenCV::dnn::readNet 抛出异常

image-processing - 24 位 bmp 到 RGB565 文件转换

python - scikit 图像骨架化后如何检测点?

Matlab地板错误?

matlab - 具有 3 个向量的等高线图

c++ - 稀疏建模软件编译错误