将<Point2f> openCV 的向量转换为 Collections::Generic::List<Windows::P oint> of C#



我想在我的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));
 }

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

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));
}

您需要实例化列表:

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

最新更新