Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用ORB描述符训练svm?_C++_Opencv_Svm_Orb - Fatal编程技术网

C++ 用ORB描述符训练svm?

C++ 用ORB描述符训练svm?,c++,opencv,svm,orb,C++,Opencv,Svm,Orb,嗨,我一直在尝试用特征训练svm,但我不知道如何处理使用ORB计算关键点的描述符。我知道svm需要一个数据矩阵和一个标签矩阵,但我不知道如何将描述符传递到有效的格式。 我读过关于BoF(词汇/功能包)的书,但我不知道如何使用它。 谢谢你的帮助 下面的代码允许我获取图像的描述符。下一步是什么 std::vector<KeyPoint> kp; Mat desc; // Default parameters of ORB

嗨,我一直在尝试用特征训练svm,但我不知道如何处理使用ORB计算关键点的描述符。我知道svm需要一个数据矩阵和一个标签矩阵,但我不知道如何将描述符传递到有效的格式。 我读过关于BoF(词汇/功能包)的书,但我不知道如何使用它。 谢谢你的帮助

下面的代码允许我获取图像的描述符。下一步是什么

            std::vector<KeyPoint> kp;
            Mat desc;
        // Default parameters of ORB
            int nfeatures = 128; 
            float scaleFactor = 1.2f; 
            int nlevels = 8;    
            int edgeThreshold = 15; // Changed default (31);
            int firstLevel = 0; 
            int WTA_K = 2; 
            int scoreType = ORB::HARRIS_SCORE; 
            int patchSize = 31; 
            int fastThreshold = 20;

            Ptr<ORB> myORB = ORB::create(nfeatures, scaleFactor, nlevels, edgeThreshold, firstLevel, WTA_K, scoreType,
                patchSize, fastThreshold);

            myORB->detectAndCompute(src, Mat(), kp, desc);

            features.push_back(desc);
std::向量kp;
Mat desc;
//ORB的默认参数
int n特征=128;
浮点比例因子=1.2f;
int nlevels=8;
int edgeThreshold=15;//违约变更(31);
int firstLevel=0;
int WTA_K=2;
int scoreType=ORB::HARRIS_分数;
int patchSize=31;
int fastThreshold=20;
Ptr myORB=ORB::create(nfeatures、scaleFactor、nLevel、edgeThreshold、firstLevel、WTA_K、scoreType、,
补丁大小,快速阈值);
myORB->detectAndCompute(src,Mat(),kp,desc);
功能。推回(描述);

我强烈建议您将python与OpenCV结合使用,这将为您节省大量时间。在python中,这只需要10行代码


关于ORB,你可以参考这个。一旦你获得了这些特性,你就可以使用它们来训练SVM分类器。

我强烈建议你在OpenCV中使用python,这将为你节省大量时间。在python中,这只需要10行代码

关于ORB,你可以参考这个。一旦你得到了特征,你就可以用它来训练SVM分类器。

你读过这个(答案和评论)吗?你读过这个(答案和评论)吗?