Проблема при применении алгоритма SLIC android studio - PullRequest
0 голосов
/ 04 сентября 2018

В моем проекте мне нужно применить SLIC-сегментацию изображения. Я скачал opencv SDK с вкладом от здесь . Мой код не будет работать, и я даже не могу сказать, где проблема, в моем коде или в opencv_contrib, который я скачал. после тестирования моего кода я получаю эту ошибку:

E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example. ***. Test_contrib, PID: 10052 java.lang.UnsatisfiedLinkError: Реализация долго не найдена org.opencv.ximgproc.Ximgproc.createSuperpixelSLIC_0 (long, int, int, плавать) (пробовал Java_org_opencv_ximgproc_Ximgproc_createSuperpixelSLIC_10 и Java_org_opencv_ximgproc_Ximgproc_createSuperpixelSLIC_10__JIIF)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button = findViewById(R.id.button);
    imageView = findViewById(R.id.image);


    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if (!OpenCVLoader.initDebug()) {
                OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_4_0, getApplicationContext(), baseLoaderCallback);
            } else {
                baseLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);

            }

        }
    });

}

final BaseLoaderCallback baseLoaderCallback = new BaseLoaderCallback(this) {
    @Override
    public void onManagerConnected(int status) {
        super.onManagerConnected(status);
        if (status == LoaderCallbackInterface.SUCCESS) {
            try {
                OpenCVLoader.initDebug();
                newImage = new Mat();
                newMat = new Mat();
                x = new Mat();

                newImage = Utils.loadResource(getApplicationContext(), R.drawable.retinalimage, CvType.CV_32FC3);
                newMat=new Mat();
                SuperpixelSLIC x= Ximgproc.createSuperpixelSLIC(newImage, Ximgproc.SLIC,50,(float)0.001);
                x.iterate(20);
                if (50>0)
                    x.enforceLabelConnectivity(50);
                Mat mask=new Mat();
                x.getLabelContourMask(mask,true);
                newMat.setTo( new Scalar(0,0,255),mask);
                showImage(newMat);


            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
};

void showImage (Mat y){
    Bitmap bm = Bitmap.createBitmap(y.width(), y.height(), Bitmap.Config.ARGB_8888);
    Utils.matToBitmap(y, bm);
    imageView.setImageBitmap(bm);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...