Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的凸面缺陷OpenCV在Android中出现错误?_Java_Android_Opencv_Gesture Recognition_Convexity Defects - Fatal编程技术网

Java 为什么我的凸面缺陷OpenCV在Android中出现错误?

Java 为什么我的凸面缺陷OpenCV在Android中出现错误?,java,android,opencv,gesture-recognition,convexity-defects,Java,Android,Opencv,Gesture Recognition,Convexity Defects,我是Android开发的初学者,也是OpenCV的新手。我有一个关于Android中手势识别的项目。我想在它上面做凸性缺陷。在我做凸性缺陷之前,我应该先找到轮廓和凸包。我已经做过了。现在,我在做凸面缺陷来得到手和手指的缺陷。但有点不对劲。当我在Android中构建带有凸性缺陷的代码时,不幸的是,它被停止了。我不知道我的凸性缺陷函数是错误的,还是我得到缺陷值(MatOfInt4)的方法是错误的 这是我的代码: List<MatOfInt> hull = new ArrayList<

我是Android开发的初学者,也是OpenCV的新手。我有一个关于Android中手势识别的项目。我想在它上面做凸性缺陷。在我做凸性缺陷之前,我应该先找到轮廓和凸包。我已经做过了。现在,我在做凸面缺陷来得到手和手指的缺陷。但有点不对劲。当我在Android中构建带有凸性缺陷的代码时,不幸的是,它被停止了。我不知道我的凸性缺陷函数是错误的,还是我得到缺陷值(MatOfInt4)的方法是错误的

这是我的代码:

List<MatOfInt> hull = new ArrayList<MatOfInt>();
List<MatOfInt4> defect = new ArrayList<MatOfInt4>();
for(int i = 0; i < newContours.size(); i++)
    {
        hull.add(new MatOfInt());
        Imgproc.convexHull(newContours.get(i), hull.get(i));
        Imgproc.convexityDefects(newContours.get(i), hull.get(i), defect.get(i));
    }

    Point defectSP= new Point();
    Point defectEP= new Point();
    Point defectFP= new Point();
    for(int i = 0; i < defect.size(); i++)
    {
        Point[] startP = new Point[newContours.get(i).rows()];
        Point[] endP = new Point[newContours.get(i).rows()];
        Point[] farP = new Point[newContours.get(i).rows()];
        Point[] depthP = new Point[newContours.get(i).rows()];

        for(int j = 0; j < defect.get(i).rows(); j++)
        {
            int distP = (int) defect.get(i).get(j, 3)[3];
            if (distP > 20*256)
            {
                startId = (int) defect.get(i).get(j, 0)[0];
                endId = (int) defect.get(i).get(j, 1)[1];
                farId = (int) defect.get(i).get(j, 2)[2];

                defectSP.x = startId;
                defectSP.y = startId;
                defectEP.x = endId;
                defectEP.y = endId;
                defectFP.x = farId;
                defectFP.y = farId;
            }
         }
     }
List-hull=new-ArrayList();
列表缺陷=新的ArrayList();
对于(int i=0;i20*256)
{
startId=(int)缺陷.get(i).get(j,0)[0];
endId=(int)defect.get(i).get(j,1)[1];
farId=(int)缺陷.get(i).get(j,2)[2];
缺陷sp.x=startId;
缺陷sp.y=startId;
defectEP.x=endId;
缺陷ep.y=endId;
defectFP.x=farId;
缺陷fp.y=farId;
}
}
}