将openCV的vector <point2f>转换为C#的Collections :: Generic :: List <windows :: point> </windows :: point> </point2f>

时间:2013-10-23 13:55:51

标签: c# c++ generics opencv

我想在我的C ++项目中将OpenCV(向量)中的点向量转换为C#点列表(Collections :: Generic :: List)。
我写了一些如下代码,但它没有用:

vector<Point2f> oldPoints;
Collections::Generic::List<Windows::Point>^ points;
for (int i = 0; i < oldPoints.rows; i++)
 {
     points -> Add(Windows::Point(oldPoints.at<Point2f>(i,0).x,oldPoints.at<Point2f>(i,0).y));
 }

有人可以帮助我吗?我做错了什么? 我的问题找不到一个好的答案;任何帮助或线索将不胜感激。

2 个答案:

答案 0 :(得分:1)

您需要实例化List:

Collections::Generic::List<Windows::Point>^ points = gcnew Collections::Generic::List<Windows::Point>();

答案 1 :(得分:1)

oldPointsstd::vector,但您与cv::Mat一样使用它。正确的代码是:

vector<Point2f> oldPoints;
Collections::Generic::List<Windows::Point>^ points 
    = gcnew Collections::Generic::List<Windows::Point>();
for (size_t i = 0; i < oldPoints.size(); i++)
{
    points->Add(Windows::Point(oldPoints[i].x, oldPoints[i].y));
}