openCV C ++查找轮廓

时间:2015-11-22 17:03:56

标签: c++ opencv

我想从我的照片中获取轮廓的坐标。我想将其保存为.txt文档。

首先我创建了:

vector<vector<cv:Pont> >extract<cv::Mat &binaryImage){
vector<vector<cv::Point> > coordinatesContours;
cv::findContours(binaryImage, coordinatesContours,  CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
return coordinatesContours;
}

我在我的主要电话中调用该功能:

oTest.extract(binaryImage);

现在我想将坐标作为输出导出到.txt

我的功能:

void Export(vector<vector<cv::Point> > coordinatesContours){

string json;
json = "{\n\t\t \"vertices\" : [\n\t\t\t\t";


for(int i=0; i< coordinatesContours.size; i++)
    for(int j=0; i< coordinatesContours.size; j++)
        cout << i << "(" << coordinatesContours[i][j].x << ", " << coordinatesContours[i][j].y << ")" << endl;

但我怎么能完成我的功能?

如何在我的Main中调用它?

请帮助 THX

1 个答案:

答案 0 :(得分:0)

我必须说你可以直接在Extract函数中添加Export函数。您应该使用fstream导出点这里的示例:

#indlude fstream
// edit : typo corrected Pont -> Point
... vector<vector<cv::Point> >extract<cv::Mat &binaryImage){
    vector<vector<cv::Point> > coordinatesContours;
    cv::findContours(binaryImage, coordinatesContours,  CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);

fstream export_file;
export_file.open("Some_Name.txt",std::ios::out);

for(int i=0; i< coordinatesContours.size; i++)
    for(int j=0; i< coordinatesContours[i].size; j++)
        export_file << "Contour: " << i << ", Point: " << j << ",(" << coordinatesContours[i][j].x << ", " << coordinatesContours[i][j].y << ")" << endl;
export_file.close();

}