C# 为确定的地标点绘制等高线(OpenCvForUnity)

C# 为确定的地标点绘制等高线(OpenCvForUnity),c#,opencv,unity3d,face-detection,C#,Opencv,Unity3d,Face Detection,我以前使用过python的OpenCV。但是我越来越难将OpenCV与unity结合使用 I面部特定点的训练数据。我可以找到地标点,我可以在unity webcamTexture上显示这些点,但我想在由我确定的地标点上绘制轮廓。首先,我需要将地标点转换为凸包点,以便在现有点之间绘制轮廓。如何转换? 我试过了 你能帮帮我吗?我终于找到了这个解决方案。若你们有相同的问题,那个么这个答案可以帮助你们 // detect face landmark points. OpenCVForUnityUtils

我以前使用过python的OpenCV。但是我越来越难将OpenCV与unity结合使用

I面部特定点的训练数据。我可以找到地标点,我可以在unity webcamTexture上显示这些点,但我想在由我确定的地标点上绘制轮廓。首先,我需要将地标点转换为凸包点,以便在现有点之间绘制轮廓。如何转换?

我试过了


你能帮帮我吗?

我终于找到了这个解决方案。若你们有相同的问题,那个么这个答案可以帮助你们

// detect face landmark points.
OpenCVForUnityUtils.SetImage(faceLandmarkDetector, rgbaMat);
for (int i = 0; i < trackedRects.Count; i++)
{
  List<Vector2> points = faceLandmarkDetector.DetectLandmark(rect);
  List<Vector2> pointss = new List<Vector2>();
  //Draw Contours
  List<Point> pointsss = OpenCVForUnityUtils.ConvertVector2ListToPointList(pointss);
  MatOfPoint hullPointMat = new MatOfPoint();
  hullPointMat.fromList(pointsss);
  List<MatOfPoint> hullPoints = new List<MatOfPoint>();
  hullPoints.Add(hullPointMat);
  Imgproc.drawContours(rgbaMat, hullPoints, -1, new Scalar(150, 100, 5,255), -1);
}


//检测面部标志点。
OpenCVForUnityUtils.SetImage(faceLandmarkDetector,rgbaMat);
for(int i=0;i
Imgproc.drawContours (rgbaMat, hullPoints, -1, new Scalar (0, 255, 0), 2);
// detect face landmark points.
OpenCVForUnityUtils.SetImage(faceLandmarkDetector, rgbaMat);
for (int i = 0; i < trackedRects.Count; i++)
{
  List<Vector2> points = faceLandmarkDetector.DetectLandmark(rect);
  List<Vector2> pointss = new List<Vector2>();
  //Draw Contours
  List<Point> pointsss = OpenCVForUnityUtils.ConvertVector2ListToPointList(pointss);
  MatOfPoint hullPointMat = new MatOfPoint();
  hullPointMat.fromList(pointsss);
  List<MatOfPoint> hullPoints = new List<MatOfPoint>();
  hullPoints.Add(hullPointMat);
  Imgproc.drawContours(rgbaMat, hullPoints, -1, new Scalar(150, 100, 5,255), -1);
}