Opencv plus unity(资产存储插件)

Opencv plus unity(资产存储插件),opencv,unity3d,Opencv,Unity3d,我需要使用ConvexHull查找“凸面缺陷”,下面是我使用“unity插件”的代码 目前,我无法将点数组传递给“凸面效果”函数,因为它将第二个参数接受为整数[],并且无法将点数组转换为整数数组 我得到的错误是“错误CS1503:参数2:无法从“OpenCvSharp.Point[]”转换为“System.Collections.Generic.IEnumerable” " 点[]船体; 点[]等高线; 对于(int i=0;i

我需要使用ConvexHull查找“凸面缺陷”,下面是我使用“unity插件”的代码

目前,我无法将点数组传递给“凸面效果”函数,因为它将第二个参数接受为整数[],并且无法将点数组转换为整数数组


我得到的错误是“错误CS1503:参数2:无法从“OpenCvSharp.Point[]”转换为“System.Collections.Generic.IEnumerable” "

点[]船体;
点[]等高线;
对于(int i=0;i
点和整数是不同的,所以点数组和整数数组也是不同的


OpenCV经常使用InputArray将大量数据传输到GPU。您需要使用其创建方法和您选择的轮廓阵列创建输入阵列。如果您想优化代码,您可能希望对每个轮廓重复使用相同的数组,但这取决于您。

@Louis Garczynski下面是格式化的代码

    Point[][] contours;
    Point[]  hull;
   for (int i = 0; i < contours.Length; i++)
    {
      hull = Cv2.ConvexHull(contours[i], false);
      for (int k = 0; k < hull.Length; k++) 
        {
             Debug.Log("jihjib" + hull[k]); 
            defects = Cv2.ConvexityDefects(contours[i], InputArray.Create(hull) ); 
        }
    }
点[][]等高线;
点[]船体;
对于(int i=0;i
Hi@Louis Garczynski我们尝试使用其Create方法创建inputarray,但它不起作用,下面是代码//inputarray.Create for(int i=0;iCv2.凸面缺陷(轮廓[i],外壳.SelectMany(p=>new[]{p.x,p.y})的东西来实现这一点。
    Point[][] contours;
    Point[]  hull;
   for (int i = 0; i < contours.Length; i++)
    {
      hull = Cv2.ConvexHull(contours[i], false);
      for (int k = 0; k < hull.Length; k++) 
        {
             Debug.Log("jihjib" + hull[k]); 
            defects = Cv2.ConvexityDefects(contours[i], InputArray.Create(hull) ); 
        }
    }