Я новый программист на android. Когда я запустил код на Java, я получил результат: маска изображения с i = 0 и j = 0: введите здесь описание изображения
private void recognizeAnswers(){
for(int i = 0; i< bubbles.size(); i+=options.length) {
List<MatOfPoint> rows = bubbles.subList(i, i+options.length);
int[][] filled = new int[rows.size()][4];
for (int j = 0; j < rows.size(); j++) {
MatOfPoint col = rows.get(j);
List<MatOfPoint> list = Arrays.asList(col);
Mat mask = new Mat(thresh.size(), CvType.CV_8UC1);
drawContours(mask.submat(roi), list, -1, new Scalar(255, 0, 0), -5);
Mat conjuction = new Mat(thresh.size(), CvType.CV_8UC1);
Core.bitwise_and(thresh, mask, conjuction);
Однако, когда я запустил Тот же код выше в Adroid Studio, я получил результат: маска изображения с i = 0 и j = 0: введите описание изображения здесь
Это неверно для первых изображений и других изображений одинаковы в обоих случаях. Список переменных в обоих случаях один и тот же.
Более удивлен, когда я реализую метод saveImage в виде кода ниже, все изображения в android будут неправильными:
private void recognizeAnswers(){
for(int i = 0; i< bubbles.size(); i+=options.length) {
List<MatOfPoint> rows = bubbles.subList(i, i+options.length);
int[][] filled = new int[rows.size()][4];
for (int j = 0; j < rows.size(); j++) {
MatOfPoint col = rows.get(j);
List<MatOfPoint> list = Arrays.asList(col);
Mat mask = new Mat(thresh.size(), CvType.CV_8UC1);
drawContours(mask.submat(roi), list, -1, new Scalar(255, 0, 0), -5);
Mat conjuction = new Mat(thresh.size(), CvType.CV_8UC1);
Core.bitwise_and(thresh, mask, conjuction);
saveImage(mask,"mask", i, j);
И это saveImage Метод:
private void SaveImage(Mat Image, String n, int i, int j, String Folder) {
Bitmap finalBitmap = Bitmap.createBitmap(Image.cols(), Image.rows(),Bitmap.Config.ARGB_8888);
Utils.matToBitmap(Image, finalBitmap);
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images" + Folder);
///System.out.println("mydir: " + myDir);
if (!myDir.exists()) {
myDir.mkdirs();
}
Random generator = new Random();
String fname = n + "_" + i +"_" + j +".jpg";
File file = new File (myDir, fname);
if (file.exists ())
file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Кто-нибудь может сказать мне причину и решение для исправления ошибки? Спасибо! Извините за знание английского sh языка!