4

私は Android 開発の初心者であり、OpenCV の初心者でもあります。Androidでの手のジェスチャー認識に関するプロジェクトがあります。その上に凸欠陥を作りたいです。凸性欠陥を行う前に、輪郭と凸包を見つける必要がありました。私はすでにそれらを行っています。今、私は手と指の欠陥を得るために凸欠陥をやっています. しかし、何か問題があります。Android で凸性欠陥のあるコードをビルドすると、残念ながら停止します。凸性欠陥関数が間違っているのか、Point への欠陥 (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;
            }
         }
     }
4

0 に答える 0