你如何获得 cv::keypoint 的 x&y 坐标和大小?我总是得到一个段错误
How do you get x&y coordinates and size of a cv::keypoint? I keep getting a segfault
我已经看了一遍又一遍各种各样的cv::KeyPoint资源,并遵循了许多提示,但到目前为止都无济于事。cv::KeyPoint类参考
// --- BLOB DETECTION --- //
// Storage for blobs
vector<KeyPoint> keypoints;
// Set up detector with params
Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create(params);
// Detect blobs
detector->detect( camThresh, keypoints);
// Draw keypoints
drawKeypoints( camRaw, keypoints, camBlobs, Scalar(0,0,255), DrawMatchesFlags::DRAW_RICH_KEYPOINTS );
我很高兴我让这个工作到这一点,但我真的需要得到这些关键点的XY和大小值。最接近的建议,我几乎得到工作(见下文)抛出一个段错误。
float x = keypoints[i].pt.x;
和
Point2f p = keypoints[i].pt;
让我得到同样的结果。有人在建议中提到了同样的问题。有人有什么建议吗?谢谢!
我知道程序崩溃的原因了。我没有检查是否有任何活动的关键点。因此,如果程序在摄像机视图中没有任何内容就启动,它就会崩溃。可以完全有效地使用,例如:
if(keypoints.size()>0) {
if((char)keyboard == 'c') {
float x0 = keypoints[0].pt.x;
float y0 = keypoints[0].pt.y;
cout << "Point0 Xpos = " << x0 << "n";
cout << "Point0 Ypos = " << y0 << "n";
}
}
只要在程序启动时有一些对象被跟踪。一旦相机视图中没有任何内容,应用程序就会崩溃。
相关文章:
- C++,我收到一个无法理解的编译器错误
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 删除映射和分割错误中的一个过去结束元素
- 为什么我的 heap.h 文件给我一个LNK2001错误?
- 写一个分数类,我无法弄清楚这些错误
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 一个标头库中的错误
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- 我正在尝试制作一个自平衡机器人,但编译时存在错误。我不知道如何解决它
- 试图修复一个错误,该错误不会让我开始编程其余部分
- MSVC 无法根据模板参数进行数学运算,这是一个错误吗?
- 我正在尝试一个傻瓜 C++ 练习,我遇到了一个错误,说类 'GraduateStudent' 没有任何名为 'advisor' 的字段
- 零四元数和任何向量都不为零的特征积,这是一个错误吗?
- 我有一个线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x8)错误.我认为这是由于内存管理不好.我可以
- 两个线程一个使用流 Api,另一个线程创建文件失败并出现错误ERROR_SHARING_VIOLATION
- 在使用堆栈为下一个最大数字编写代码时面临 SIGSEGV(分段错误)
- LNK2019错误一个DLL链接到MFC DLL
- 错误:一个声明中有多个类型
- 带有两个运算符的C++11模糊错误(一个左值-第二个右值).底部的