gpt4 book ai didi

opencv - 不同大小的OpenCV矩阵

转载 作者:行者123 更新时间:2023-12-02 17:52:24 27 4
gpt4 key购买 nike

我在OpenCV中的Mat遇到问题。我使用SIFT对SVM进行图像分类。现在我意识到真正的阳性率很低,因此我决定在SIFT的基础上增加ORB特征检测器。我的问题是,例如一张图片:

SIFT描述符:Mat大小[128 x 250]

ORB描述符:Mat大小[32 x 400]

现在,对于训练矩阵,所有功能都必须在训练矩阵中,然后再进行训练。现在,您看到SIFT和ORB的2个矩阵的大小不同。如何将它们组合成一个矩阵?

我是否必须将第二个矩阵追加(添加)到第一个矩阵的末尾,因为当前我正在将其分配给单独的列。

请给我一些提示。

最佳答案

根据您的解决方案提取功能分为两部分。第一部分是检测关键点,第二部分是描述关键点。目前,您正在同时使用SIFT和ORB进行这两个阶段,并提出了不同大小的矩阵。而是使用以下框架:

// Construct detectors
cv::FeatureDetector siftDetector, orbDetector;
siftDetector.create("SIFT");
orbDetector.create("ORB");

// Detect keypoints
std::vector<cv::Keypoint> siftPoints, orbPoints;
siftDetector.detect(img, siftPoints);
orbDetector.detect(img, orbPoints);

// Concantenate the vectors
siftPoints.insert(siftPoints.end(), orbPoints.begin(), orbPoints.end());

// Construct descriptor (SIFT used as example)
cv::FeatureDescriptor siftDescriptor;
siftDescriptor.create("SIFT");

// Compute descriptors
cv::Mat descriptors;
siftDescriptor.compute(img, siftPoints, descriptors);

现在,您具有所有检测到的关键点的SIFT描述。

PS:我尚未编译此代码,因此请仔细检查拼写和语法。

关于opencv - 不同大小的OpenCV矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17335006/

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