gpt4 book ai didi

opencv - cv::Orb 中的错误?

转载 作者:太空宇宙 更新时间:2023-11-03 22:15:36 25 4
gpt4 key购买 nike

我最近在 opencv 的 ORB 中发现了一些非常奇怪的行为描述符。

cv::Mat grey; //greyscale image
std::vector<cv::KeyPoint> keypoints;
cv::Mat descriptors;
cv::ORB detector;
detector(grey,cv::Mat(),keypoints,descriptors);

如果给定一个不包含潜在关键点的图像(例如黑色图像)并出现错误,上述代码将始终崩溃

OpenCV Error: Assertion failed (m.dims >= 2) in Mat, file /Users/user/slave/ios_framework/src/opencv/modules/core/src/matrix.cpp, line 268

我发现要解决这个问题,我可以执行以下操作

cv::Mat grey;
std::vector<cv::KeyPoint> keypoints;
cv::Mat descriptors;
cv::ORB detector;
detector(grey,cv::Mat(),keypoints);
if(keypoints.size() > 0)
{
detector(grey,cv::Mat(),keypoints,descriptors,true);
}

它首先检测关键点,然后在检测到任何关键点时生成它们的描述符。我在 iOS 上使用 opencv2 作为 .framework。

这是 OpenCV 中的错误吗?如果不是,我做错了什么?如果是这样,是否有修复它的任何版本?

最佳答案

我刚刚运行了这段代码

cv::Mat grey = cv::Mat::zeros(100, 100, CV_8UC1);
std::vector<cv::KeyPoint> keypoints;
cv::Mat descriptors;
cv::ORB detector;
detector(grey,cv::Mat(),keypoints,descriptors);

使用 OpenCV 2.4.1 没有问题。

您是否调试过您的代码以查看断言到底在哪里失败?

关于opencv - cv::Orb 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com