Java API: corrected names of methods in Utils class; fixed bug in DMatch (thank for...
authorAndrey Kamaev <no@email>
Tue, 9 Aug 2011 11:46:27 +0000 (11:46 +0000)
committerAndrey Kamaev <no@email>
Tue, 9 Aug 2011 11:46:27 +0000 (11:46 +0000)
modules/java/android_test/src/org/opencv/test/OpenCVTestRunner.java
modules/java/android_test/src/org/opencv/test/android/UtilsTest.java
modules/java/src/java/android+Utils.java
modules/java/src/java/features2d+DMatch.java
samples/android/15-puzzle/src/org/opencv/samples/puzzle15/puzzle15View.java
samples/android/face-detection/src/org/opencv/samples/fd/FdView.java
samples/android/image-manipulations/src/org/opencv/samples/imagemanipulations/ImageManipulationsView.java
samples/android/tutorial-1-addopencv/src/org/opencv/samples/tutorial1/Sample1View.java
samples/android/tutorial-2-opencvcamera/src/org/opencv/samples/tutorial2/Sample2View.java
samples/android/tutorial-3-native/.project
samples/android/tutorial-4-mixed/src/org/opencv/samples/tutorial4/Sample4View.java

index e9a4a7a..0ea89a4 100644 (file)
@@ -26,7 +26,7 @@ public class OpenCVTestRunner extends InstrumentationTestRunner {
 
     private AndroidTestRunner androidTestRunner;
     private static String TAG = "opencv_test_java";
-    
+
     public static String getTempFileName(String extension)
     {
         File cache = context.getCacheDir();
@@ -46,7 +46,7 @@ public class OpenCVTestRunner extends InstrumentationTestRunner {
     static public void Log(String message) {
         Log.e(TAG, message);
     }
-    
+
     static public void Log(Mat m) {
         Log.e(TAG, m + "\n " + m.dump());
     }
@@ -54,12 +54,13 @@ public class OpenCVTestRunner extends InstrumentationTestRunner {
     @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
@@ -72,7 +73,7 @@ public class OpenCVTestRunner extends InstrumentationTestRunner {
         androidTestRunner = super.getAndroidTestRunner();
         return androidTestRunner;
     }
-    
+
     public static String getOutputFileName(String name)
     {
         return context.getExternalFilesDir(null).getAbsolutePath() + File.separatorChar + name;
index 93adca1..082e26c 100644 (file)
@@ -16,6 +16,14 @@ public class UtilsTest extends OpenCVTestCase {
         fail("Not yet implemented");\r
     }\r
 \r
+    public void testLoadResourceContextInt() {\r
+        fail("Not yet implemented");\r
+    }\r
+\r
+    public void testLoadResourceContextIntInt() {\r
+        fail("Not yet implemented");\r
+    }\r
+\r
     public void testMatToBitmap() {\r
         fail("Not yet implemented");\r
     }\r
index 7e0f668..6ffa223 100644 (file)
@@ -1,62 +1,92 @@
-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);
+}
index 96914c5..ac86406 100644 (file)
@@ -48,7 +48,7 @@ public class DMatch {
     /**\r
      * less is better\r
      */\r
-    boolean lessThan(DMatch it) {\r
+    public boolean lessThan(DMatch it) {\r
         return distance < it.distance;\r
     }\r
 \r
index 3365538..a4d18ae 100644 (file)
@@ -137,7 +137,7 @@ public class puzzle15View extends SampleCvViewBase implements OnTouchListener {
         drawGrid(cols, rows);\r
 \r
         Bitmap bmp = Bitmap.createBitmap(cols, rows, Bitmap.Config.ARGB_8888);\r
-        if (Utils.MatToBitmap(mRgba15, bmp))\r
+        if (Utils.matToBitmap(mRgba15, bmp))\r
             return bmp;\r
 \r
         bmp.recycle();\r
index ff74d12..538bbdb 100644 (file)
@@ -91,7 +91,7 @@ class FdView extends SampleCvViewBase {
 
         Bitmap bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888);
 
-        if (Utils.MatToBitmap(mRgba, bmp))
+        if (Utils.matToBitmap(mRgba, bmp))
             return bmp;
 
         bmp.recycle();
index 9ee9ab4..d4f74cf 100644 (file)
@@ -135,7 +135,7 @@ class ImageManipulationsView extends SampleCvViewBase {
 
         Bitmap bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888);
 
-        if (Utils.MatToBitmap(mRgba, bmp))
+        if (Utils.matToBitmap(mRgba, bmp))
             return bmp;
 
         bmp.recycle();
index a1fd2f0..32aa634 100644 (file)
@@ -56,7 +56,7 @@ class Sample1View extends SampleViewBase {
 
         Bitmap bmp = Bitmap.createBitmap(getFrameWidth(), getFrameHeight(), Bitmap.Config.ARGB_8888);
 
-        if (Utils.MatToBitmap(mRgba, bmp))
+        if (Utils.matToBitmap(mRgba, bmp))
             return bmp;
 
         bmp.recycle();
index 15a0bc8..bbadc5e 100644 (file)
@@ -54,7 +54,7 @@ class Sample2View extends SampleCvViewBase {
 
         Bitmap bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888);
 
-        if (Utils.MatToBitmap(mRgba, bmp))
+        if (Utils.matToBitmap(mRgba, bmp))
             return bmp;
 
         bmp.recycle();
index e83271a..6cf7ad3 100644 (file)
                        <arguments>
                        </arguments>
                </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+                       <triggers>auto,full,incremental,</triggers>
+                       <arguments>
+                               <dictionary>
+                                       <key>LaunchConfigHandle</key>
+                                       <value>&lt;project&gt;/.externalToolBuilders/Tutorial 2.1 Builder.launch</value>
+                               </dictionary>
+                       </arguments>
+               </buildCommand>
        </buildSpec>
        <natures>
                <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
index 9326dff..94f421f 100644 (file)
@@ -56,7 +56,7 @@ class Sample4View extends SampleViewBase {
 
         Bitmap bmp = Bitmap.createBitmap(getFrameWidth(), getFrameHeight(), Bitmap.Config.ARGB_8888);
 
-        if (Utils.MatToBitmap(mRgba, bmp))
+        if (Utils.matToBitmap(mRgba, bmp))
             return bmp;
 
         bmp.recycle();