Java opencv我对下一类android有问题吗?

Java opencv我对下一类android有问题吗?,java,android,opencv,Java,Android,Opencv,这门课我有问题。我的问题是,我的一个类在android上运行时不能正常工作。应用程序停止,因为它无法转换图像。请找个能帮我的人 包com.example.jorge.demo.object_recog import android.provider.MediaStore; import android.util.Log; import org.opencv.core.Mat; import org.opencv.core.Size; import org.opencv.imgproc.Imgp

这门课我有问题。我的问题是,我的一个类在android上运行时不能正常工作。应用程序停止,因为它无法转换图像。请找个能帮我的人

包com.example.jorge.demo.object_recog

import android.provider.MediaStore;
import android.util.Log;

import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgproc.Imgproc;
import org.opencv.imgcodecs.Imgcodecs;

import org.opencv.video.Video;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;

public class Utilities {

    public static ArrayList<File> getJPGFiles(File dir) {
        File[] files = dir.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File file, String name) {
                return name.endsWith(".jpg");
            }
        });

        Arrays.sort(files);
        ArrayList<File> jpgFiles = new ArrayList<File>();

        for (File file : files) {
            jpgFiles.add(file);
        }
        return jpgFiles;
    }

// How can I replace this class. ArrayList <Mat> getImageMats (ArrayList <File>imageFiles)


    public static ArrayList<Mat> getImageMats(ArrayList<File> imageFiles) {
        ArrayList<Mat> imageMats = new ArrayList<Mat>();

        for (File image : imageFiles) {

//What is failing is what I commented. There is another solution for this problem that I have

            //Mat fullSizeTrainImg = Highgui.imread(image.getPath());
            //Mat resizedTrainImg = new Mat();
            //Imgproc.resize(fullSizeTrainImg, resizedTrainImg, new Size(640, 480), 0, 0, Imgproc.INTER_CUBIC);
            //imageMats.add(resizedTrainImg);

        }

        return imageMats;

    }

    public static ArrayList<String> getFileNames(ArrayList<File> imageFiles) {
        ArrayList<String> fileNames = new ArrayList<String>();

        for (File image : imageFiles) {
            fileNames.add(image.getName().substring(0, image.getName().lastIndexOf(".")));
        }

        return fileNames;
    }

    public static void copyFile(File src, File dst) throws IOException {
        InputStream inputStream = new FileInputStream(src);
        OutputStream outputStream = new FileOutputStream(dst);

        byte[] buf = new byte[1024];
        int len;
        while ((len = inputStream.read(buf)) > 0) {
            outputStream.write(buf, 0, len);
        }
        inputStream.close();
        outputStream.close();
    }
}
导入android.provider.MediaStore;
导入android.util.Log;
导入org.opencv.core.Mat;
导入org.opencv.core.Size;
导入org.opencv.imgproc.imgproc;
导入org.opencv.imgcodecs.imgcodecs;
导入org.opencv.video.video;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.io.FilenameFilter;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.OutputStream;
导入java.util.ArrayList;
导入java.util.array;
公用事业{
公共静态数组列表getJPGFiles(文件目录){
File[]files=dir.listFiles(新文件名过滤器(){
@凌驾
公共布尔接受(文件、字符串名称){
返回名称.endsWith(“.jpg”);
}
});
数组。排序(文件);
ArrayList jpgFiles=新的ArrayList();
用于(文件:文件){
jpgFiles.add(文件);
}
返回jpgFiles;
}
//如何替换此类。ArrayList getImageMats(ArrayList imageFiles)
公共静态ArrayList getImageMats(ArrayList imageFiles){
ArrayList imageMats=新的ArrayList();
用于(文件图像:imageFiles){
//失败的是我的评论。我有另一个解决这个问题的方法
//Mat fullsizetraining=Highgui.imread(image.getPath());
//Mat resizedTrainImg=新Mat();
//Imgproc.resize(FullSizeTraining、ResizedTraining、新大小(640480)、0、0、Imgproc.INTER_CUBIC);
//imageMats.add(resizedTrainImg);
}
返回图像垫;
}
公共静态ArrayList GetFileName(ArrayList imageFiles){
ArrayList文件名=新的ArrayList();
用于(文件图像:imageFiles){
添加(image.getName().substring(0,image.getName().lastIndexOf(“.”));
}
返回文件名;
}
公共静态void copyFile(文件src、文件dst)引发IOException{
InputStream InputStream=新文件InputStream(src);
OutputStream OutputStream=新文件OutputStream(dst);
字节[]buf=新字节[1024];
内伦;
而((len=inputStream.read(buf))>0){
outputStream.write(buf,0,len);
}
inputStream.close();
outputStream.close();
}
}