我试图用ORB检测关键点一切正常,直到我切换到Opencv 2.4.9.
第一,似乎键的数量减少了,对于某些图像,没有检测到关键点:
这是我用两个版本编译的代码:(2.3.1和2.4.9)
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/features2d/features2d.hpp>
using namespace cv;
int main(int argc, char **argv){
Mat img = imread(argv[1]);
std::vector<KeyPoint> kp;
OrbFeatureDetector detector;
detector.detect(img, kp);
std::cout << "Found " << kp.size() << " Keypoints " << std::endl;
Mat out;
drawKeypoints(img, kp, out, Scalar::all(255));
imshow("Kpts", out);
waitKey(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果:2.3.1:找到152个关键点

2.4.9:找到0个关键点

我还测试了一个不同的ORB构造函数,但我得到了相同的结果,没有KPts.与2.3.1默认的构造函数中相同的构造函数值:2.4.9 custom constr:
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/features2d/features2d.hpp>
using namespace cv;
int main(int argc, char **argv){
Mat img = imread(argv[1]);
std::vector<KeyPoint> kp;
// default in …Run Code Online (Sandbox Code Playgroud) 如果我将pixmap设置QGraphicsScene为比窗口大的那个,它会添加滚动条,那么是否可以获得显示的内容QGraphicsView?
滚动和更改显示区域时是否有任何事件?
这是我正在谈论的屏幕:

谢谢
我想知道为什么不能从静态函数调用成员函数
#include <iostream>
class A{
public:
A(){}
~A(){}
static void astaticFunction(){
printHello();
}
private:
void printHello(){
std::cout << "Hello" << std::endl;
}
};
int main(int argc, char **argv){
A::astaticFunction();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译器正在返回此信息
main.cpp: In static member function ‘static void A::astaticFunction()’:
main.cpp:8:16: error: cannot call member function ‘void A::printHello()’ without object
Run Code Online (Sandbox Code Playgroud)
我该如何使用它?谢谢