private AndroidTestRunner androidTestRunner;
private static String TAG = "opencv_test_java";
-
+
public static String getTempFileName(String extension)
{
File cache = context.getCacheDir();
static public void Log(String message) {
Log.e(TAG, message);
}
-
+
static public void Log(Mat m) {
Log.e(TAG, m + "\n " + m.dump());
}
@Override
public void onStart() {
context = getContext();
- LENA_PATH = Utils.ExportResource(context, R.drawable.lena);
- CHESS_PATH = Utils.ExportResource(context, R.drawable.chessboard);
- LBPCASCADE_FRONTALFACE_PATH = Utils.ExportResource(context, R.raw.lbpcascade_frontalface);
+ LENA_PATH = Utils.exportResource(context, R.drawable.lena);
+ CHESS_PATH = Utils.exportResource(context, R.drawable.chessboard);
+ LBPCASCADE_FRONTALFACE_PATH = Utils.exportResource(context, R.raw.lbpcascade_frontalface);
/*
- * The original idea about test order randomization is from marek.defecinski blog.
+ * The original idea about test order randomization is from
+ * marek.defecinski blog.
*/
// List<TestCase> testCases = androidTestRunner.getTestCases();
// Collections.shuffle(testCases); //shuffle the tests order
androidTestRunner = super.getAndroidTestRunner();
return androidTestRunner;
}
-
+
public static String getOutputFileName(String name)
{
return context.getExternalFilesDir(null).getAbsolutePath() + File.separatorChar + name;
-package org.opencv.android;\r
-\r
-import org.opencv.core.CvException;\r
-import org.opencv.core.Mat;\r
-\r
-import java.io.File;\r
-import java.io.FileOutputStream;\r
-import java.io.IOException;\r
-import java.io.InputStream;\r
-\r
-import android.content.Context;\r
-import android.graphics.Bitmap;\r
-\r
-public class Utils {\r
-\r
- public static String ExportResource(Context context, int resourceId) {\r
- return ExportResource(context, resourceId, "OpenCV_data");\r
- }\r
-\r
- public static String ExportResource(Context context, int resourceId, String dirname) {\r
- String fullname = context.getResources().getString(resourceId);\r
- String resName = fullname.substring(fullname.lastIndexOf("/") + 1);\r
- try {\r
- InputStream is = context.getResources().openRawResource(resourceId);\r
- File resDir = context.getDir(dirname, Context.MODE_PRIVATE);\r
- File resFile = new File(resDir, resName);\r
-\r
- FileOutputStream os = new FileOutputStream(resFile);\r
-\r
- byte[] buffer = new byte[4096];\r
- int bytesRead;\r
- while ((bytesRead = is.read(buffer)) != -1) {\r
- os.write(buffer, 0, bytesRead);\r
- }\r
- is.close();\r
- os.close();\r
-\r
- return resFile.getAbsolutePath();\r
- } catch (IOException e) {\r
- e.printStackTrace();\r
- throw new CvException("Failed to export resource " + resName\r
- + ". Exception thrown: " + e);\r
- }\r
- }\r
-\r
- public static Mat BitmapToMat(Bitmap b) {\r
- return new Mat(nBitmapToMat(b));\r
- }\r
-\r
- public static boolean MatToBitmap(Mat m, Bitmap b) {\r
- return nMatToBitmap(m.nativeObj, b);\r
- }\r
-\r
- // native stuff\r
- static {\r
- System.loadLibrary("opencv_java");\r
- }\r
-\r
- private static native long nBitmapToMat(Bitmap b);\r
-\r
- private static native boolean nMatToBitmap(long m, Bitmap b);\r
-}\r
+package org.opencv.android;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+
+import org.opencv.core.CvException;
+import org.opencv.core.CvType;
+import org.opencv.core.Mat;
+import org.opencv.highgui.Highgui;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class Utils {
+
+ public static String exportResource(Context context, int resourceId) {
+ return exportResource(context, resourceId, "OpenCV_data");
+ }
+
+ public static String exportResource(Context context, int resourceId, String dirname) {
+ String fullname = context.getResources().getString(resourceId);
+ String resName = fullname.substring(fullname.lastIndexOf("/") + 1);
+ try {
+ InputStream is = context.getResources().openRawResource(resourceId);
+ File resDir = context.getDir(dirname, Context.MODE_PRIVATE);
+ File resFile = new File(resDir, resName);
+
+ FileOutputStream os = new FileOutputStream(resFile);
+
+ byte[] buffer = new byte[4096];
+ int bytesRead;
+ while ((bytesRead = is.read(buffer)) != -1) {
+ os.write(buffer, 0, bytesRead);
+ }
+ is.close();
+ os.close();
+
+ return resFile.getAbsolutePath();
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new CvException("Failed to export resource " + resName
+ + ". Exception thrown: " + e);
+ }
+ }
+
+ public static Mat loadResource(Context context, int resourceId) throws IOException
+ {
+ return loadResource(context, resourceId, -1);
+ }
+
+ public static Mat loadResource(Context context, int resourceId, int flags) throws IOException
+ {
+ InputStream is = context.getResources().openRawResource(resourceId);
+ ByteArrayOutputStream os = new ByteArrayOutputStream(is.available());
+
+ byte[] buffer = new byte[4096];
+ int bytesRead;
+ while ((bytesRead = is.read(buffer)) != -1) {
+ os.write(buffer, 0, bytesRead);
+ }
+ is.close();
+
+ Mat encoded = new Mat(1, os.size(), CvType.CV_8U);
+ encoded.put(0, 0, os.toByteArray());
+ os.close();
+
+ Mat decoded = Highgui.imdecode(encoded, flags);
+ encoded.release();
+
+ return decoded;
+ }
+
+ public static Mat bitmapToMat(Bitmap b) {
+ return new Mat(nBitmapToMat(b));
+ }
+
+ public static boolean matToBitmap(Mat m, Bitmap b) {
+ return nMatToBitmap(m.nativeObj, b);
+ }
+
+ // native stuff
+ static {
+ System.loadLibrary("opencv_java");
+ }
+
+ private static native long nBitmapToMat(Bitmap b);
+
+ private static native boolean nMatToBitmap(long m, Bitmap b);
+}