- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经能够使用 FileStorage 成功地将关键点( vector )、描述符(Mat)和其他内容写入 yml 文件。但是,在我计算出一对图像之间的匹配项后,我无法将匹配项写入文件。
我假设这是因为 DMatch 似乎是一个具有距离、trainIdx 等字段的结构,但是有人有将其写入文件的好方法吗?
或者我应该只写一个距离 vector 、一个 trainIdx vector 等?
编辑以显示一些代码:
std::vector<cv::DMatch> matches;
for(int i=0;i<numims-1;i++){
for(int j=i+1;j<min(i+10,numims);j++){
matches = MatchImagePair(i,j);
//write the matches
std::string matchfile = matchpath + "matchesij.yml";
cv::FileStorage fs(matchfile, cv::FileStorage::WRITE);
write(fs, "matches", matches);
fs.release();
}
}
matchesij 应包含 i 和 j 的数字,但为简洁起见,我进行了编辑。
此外,MatchImagePair
看起来像:
std::vector<cv::DMatch> Matches::MatchImagePair(int idx1, int idx2){
//matcher type
cv::BFMatcher matcher(cv::NORM_L2);
//given descrs1 and descrs2, match the 2 descriptors
matcher.knnMatch(descrs1, descrs2, matches12, 2);
matcher.knnMatch(descrs2, descrs1, matches21, 2);
//various tests, returns vector<DMatch> given keypts1, keypts2 (for RANSAC)
matches = DoVariousTests(matches12, matches21, keypts1, keypts2);
return matches;
}
最佳答案
您可以为文件存储重载 >>>
运算符。
来自 here 的 cv::TermCriteria 的工作示例代码:
void operator>>(const cv::FileNode &node,
cv::TermCriteria &termCrit) {
node["type"] >> termCrit.type;
node["maxCount"] >> termCrit.maxCount;
node["epsilon"] >> termCrit.epsilon;
}
cv::FileStorage &operator<<(cv::FileStorage &fs,
const cv::TermCriteria &termCrit) {
fs << "{" << "type" << termCrit.type << "maxCount"
<< termCrit.maxCount << "epsilon" << termCrit.epsilon
<< "}";
return fs;
}
关于c++ - 如何将 vector<Dmatch> 写入 FileStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24193717/
我有一个 .xlsx 文件,并将其转换为 .csv 文件。然后我将 .csv 文件上传到我编写的 Python 脚本中,但抛出错误。 由于文件是通过 HTTP 上传的,因此我使用 file = req
我正在使用 Flask、WTForms 和 Flask-WTF 来保存文件,但该文件始终存储为空文件。它没有显示任何错误。 表格: from flask_wtf import FlaskForm fr
我正在尝试使用 Django 中的文件存储。一切正常,但我想我的保存方法有问题。我有一个带有 FileField 的模型 download_url = models.FileField(verbose
我曾经在 opencv c++ 中使用过 FileStorage 类,它非常有用,但我找不到如何在 opencv python 中使用它。请帮我。谢谢 最佳答案 `import cv2 import
我正在尝试编写一个文件(json/yaml/xml,格式无关紧要)来存储具有特定 cv::Mat 的文件路径。当我最终意识到 here ,组合键不允许路径(例如/home/user)。 void pe
是否有类似类的东西可以用来存储文件和目录,就像 Zip 文件的使用方式一样? 因为我还没有找到任何“真正的”类来编写 Zip 文件(真正的类,如 真正的 类),如果能够将文件和目录存储在类似容器的文件
我通过 flask 制作了一个 api,它提交了一个文件,在后端收到它之后,我想使用 python requests 进一步将它上传到一个未知的服务器模块 如果我这样做,服务器会接受文件 - requ
我基本上是在读取 OpenCV FileNode 中的几个字段,进行一些计算,然后用计算的数据仅替换原始 OpenCV FileNode 中的一个字段。 我找不到任何允许我这样做的方法。有没有人这样做
我正在尝试使用 OpenCV 库将多个值写入 XML 文件。 我正在尝试保存我在项目中使用的结构之一: if (validCalib) { QString calpath = path() +
我正在尝试使用 OpenCV FileStorage 类从 YAML 文件中读取一些数据,但是 VS 2013 给出了 Run-Time Check Failure #2 - Stack around
我用这样的数据编写 vector : string filename= itemName+".yml"; FileStorage fs(filename, FileStorage::WRITE); f
我想使用 opencv FileStorage 对象编写一个 XML 文件。 我看到的大多数示例都像下面这样工作 FileStorage fs("d:\\1.xml" , FileStorage::W
我在 flask 应用程序中有以下路由,它接受上传的文件并将文件对象扔到函数中进行验证。这是一个准系统示例: def is_file_valid(file): if file.filename
我已使用 cv::FileStorage 成功将大小为 (10,10, CV_32F24) 的 Mat 保存到文本文件中。但是,当我尝试使用 cv::FileStorage 再次加载/读取它时,它失败
我正在尝试将“cv::FileStorage”中包含的内容“读取”到 CvRTrees(CvStatModel 实现之一)中。 “读取”函数需要一个 CvFileStorage* 和一个 CvFile
我有一个用 Xcode 编写的命令行 openCV 程序,它打开两个 XML 文件,分析然后比较它们。但是,我现在正尝试使用 QtCreator 将该程序放入 GUI 中,以便更容易理解输出。 问题是
我正在尝试实现 this项目,即 GenData.cpp,(用 C++ 编写)在 Java 中用于 KNN 分类器。 我遇到了这些代码行并卡住了: matClassificationInts.push
我在让 (x,y) = x+y; } } std::cout #include int _tmain(int argc, _TCHAR* argv[]) { cv::Mat test
我已经能够使用 FileStorage 成功地将关键点( vector )、描述符(Mat)和其他内容写入 yml 文件。但是,在我计算出一对图像之间的匹配项后,我无法将匹配项写入文件。 我假设这是因
我想使用 cv::FileStorage 类将我的 MarkerDistance 结构写入文件。 我尝试以各种方式重载 << 运算符,但它无法编译。而且我不确定到底出了什么问题。如果有人能指出正确的方
我是一名优秀的程序员,十分优秀!