【发布时间】:2015-06-06 16:33:29
【问题描述】:
出于好奇,我正在尝试运行这个 repo:https://github.com/jzeimen/PuzzleSolver/tree/master/PuzzleSolver
每当我尝试从 PuzzleDisjointSet.cpp 运行以下代码行时,Eclipse 都会抛出标题错误“'MSize' is not a member of cv::Mat':
cv::Mat::MSize size_of_a = sets[rep_a].locations.size;
位置的定义如下:
struct forest{
cv::Mat_<int> locations;
cv::Mat_<int> rotations;
int representative;
int id;
};
和集合是森林结构的矢量版本。当documentation clearly refutes this 时,我主要对为什么会发生这种情况感到困惑。
我相信我包含的头文件是正确的(PuzzleDisjointSet.h 包括上述森林结构定义以及集合定义。
#include "PuzzleDisjointSet.h"
#include <algorithm>
#include <opencv2/core.hpp>
#include <opencv/cv.h>
#include <opencv2/core/mat.hpp>
【问题讨论】:
-
你能更新确切的错误信息吗?有时结构可能没有定义,因为发生了其他事情。
-
@Rome_Leader 我刚刚使用 Eclipse CDT 3.8.1 构建了该存储库,没有遇到该错误。您“相信您包含的头文件是正确的”。那么你不是简单地构建你在 repo 中找到的源代码并将其与 opencv 链接吗?
-
我对 opencv 了解不多,但 this 文档中没有关于包含名为 MSize 的子结构的 Mat 的信息。您确定您使用正确的 OpenCV 进行编译?你检查头文件了吗?
-
@CássioRenan 确切的错误消息是:'MSize 不是 'cv::Mat' 的成员。感谢下面的另一个答案,我现在知道在最新的 OpenCV (3.0) 版本中对 cv::Mat 类进行了一些重构。看着它自动取款机。
-
@MikeKinghan 您使用的是哪个版本的 OpenCV?我使用的是 3.0,并且在我们发言时正在尝试回滚到 2.4.9。