当前位置: 首页>>代码示例>>C++>>正文


C++ Vocabulary::MatToFile方法代码示例

本文整理汇总了C++中Vocabulary::MatToFile方法的典型用法代码示例。如果您正苦于以下问题:C++ Vocabulary::MatToFile方法的具体用法?C++ Vocabulary::MatToFile怎么用?C++ Vocabulary::MatToFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Vocabulary的用法示例。


在下文中一共展示了Vocabulary::MatToFile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: runtime_error


//.........这里部分代码省略.........
				vector<uchar> status;
				//it might be useful to set all the parameters manually
				findFundamentalMat(points1, points2, status, FM_RANSAC, 3., 0.9);			// what corresponds to '3' method&

				vector<uchar>::iterator stat_itr = status.begin(),
						stat_itr_fal = status.end();
				int calc_nonzero=0;
				for(; stat_itr!=stat_itr_fal;++stat_itr ){
					if (*stat_itr!=0){					//and did that '3' method work with outlyers?
						++calc_nonzero;
					}
				}
				float ratio = 0;
				if(compatPoints.size()!=0){
					ratio = static_cast<float>(calc_nonzero)/ static_cast<float>(compatPoints.size());
				}
				if (ratio>=gmtr_threshold) {
					cur_closure.push_back(static_cast<float>(img_n));
					cur_closure.push_back(static_cast<float>(candidate_it->first));
					cur_closure.push_back(candidate_it->second);
					cur_closure.push_back(ratio);
					detectedLoopClosures.push_back(cur_closure);
				}
				//************************************************************************************
				pair<int, vector<float> > fp_pair;
				pair<map<int, vector<float> >::iterator,bool> ret;
				fp_pair = make_pair(img_n, curImg_pos_probab);
				ret = closureProbab.insert(fp_pair);
				if (ret.second){
					std::ofstream outFile((outputFolder+closureProbabFile).c_str(), std::ios::out | std::ifstream::app);
					outFile<<img_n<<" ";
					for(int i = 0;i< curImg_pos_probab.size();i++){
						outFile<<curImg_pos_probab[i]<<" ";
					}
					outFile<<"\n";
					outFile.close();
				}
			}
		}
		pair<int, vector<float> > fp_pair;
		pair<map<int, vector<float> >::iterator,bool> ret;
		fp_pair = make_pair(img_n, curImg_pos_probab);
		ret = closureProbab.insert(fp_pair);
		if (ret.second){
			std::ofstream outFile((outputFolder+closureProbabFile).c_str(), std::ios::out | std::ifstream::app);
			outFile<<img_n<<" ";
			for(int i = 0;i< curImg_pos_probab.size();i++){
				outFile<<curImg_pos_probab[i]<<" ";
			}
			outFile<<"\n";
			outFile.close();
		}
	}


	//Writing output

	stringstream ssImg;
	ssImg << img_n<<".ppm";  // int value
	imwrite((outputFolder+im+ssImg.str()).c_str(), img_current);

	std::ofstream outFileDM((outputFolder+dataMapFile).c_str(),std::ios::out | std::ifstream::app);
	outFileDM<<img_n<<"    "<<ts<<"    "<<odom<<endl;
	outFileDM.close();

	stringstream tempDir;
	tempDir<<img_n<<".dat";
	VocabularyObject.MatToFile(outputFolder+imDescr+tempDir.str(),curImgDescriptors);
	VocabularyObject.MatToFile(outputFolder+imgFlannLab+tempDir.str(),curImgFlannLabels);
	std::ofstream outFileImBow((outputFolder+imBow+tempDir.str()).c_str(), std::ios::out | std::ifstream::binary);
	for(int i = 0;i< curImg_bow.size();i++){
		outFileImBow<<curImg_bow[i]<<"\n";
	}
	outFileImBow.close();

	std::ofstream outFileImFeat((outputFolder+imFeat+tempDir.str()).c_str(),std::ios::out | std::ifstream::binary);
	vector<cv::KeyPoint>::iterator itr = curImgFeatures.begin(), itr_fal = curImgFeatures.end();
	for(;itr!=itr_fal;++itr){
		outFileImFeat<<itr->pt.x<<" "<<itr->pt.y<<endl;
	}
	outFileImFeat.close();

	std::ofstream outFileClosure((outputFolder+closureFile).c_str(), std::ios::out | std::ifstream::app);
	for(int i =0;i<detectedLoopClosures.size();i++){
		std::pair<string, string> first = dataMap[detectedLoopClosures[i][0]];
		std::pair<string, string> second = dataMap[detectedLoopClosures[i][1]];
		outFileClosure<< detectedLoopClosures[i][0]<<"    "<<first.first <<"    "<< first.second <<"    "<< detectedLoopClosures[i][1]<<"    "<<second.first << "    " <<second.second <<"    " <<detectedLoopClosures[i][2]<<"    "<<detectedLoopClosures[i][3];
		outFileClosure<<endl;
	}
	outFileClosure.close();

	std::ofstream outFileInvInd((outputFolder+invIndFile).c_str() ,std::ios::out | std::ifstream::out);
	for(std::map<int, std::vector<int> >::iterator it = newInvIndex.begin();it!=newInvIndex.end();it++){
		outFileInvInd<<it->first<<" ";
		for(int i=0;i<it->second.size();i++)
			outFileInvInd<<it->second[i]<<" ";
		outFileInvInd<<endl;
	}
	return detectedLoopClosures;
}
开发者ID:f-alemauro,项目名称:loopCloser,代码行数:101,代码来源:Loop_Closer.cpp


注:本文中的Vocabulary::MatToFile方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。