Java opencv我对下一类android有问题吗?
这门课我有问题。我的问题是,我的一个类在android上运行时不能正常工作。应用程序停止,因为它无法转换图像。请找个能帮我的人 包com.example.jorge.demo.object_recogJava 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
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();
}
}