|
|
|
@ -1,23 +1,26 @@ |
|
|
|
|
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; |
|
|
|
|
|
|
|
|
|
import android.content.Context; |
|
|
|
|
import android.graphics.Bitmap; |
|
|
|
|
|
|
|
|
|
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) { |
|
|
|
|
return exportResource(context, resourceId, "OpenCV_data"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static String ExportResource(Context context, int resourceId, String dirname) { |
|
|
|
|
public static String exportResource(Context context, int resourceId, String dirname) { |
|
|
|
|
String fullname = context.getResources().getString(resourceId); |
|
|
|
|
String resName = fullname.substring(fullname.lastIndexOf("/") + 1); |
|
|
|
|
try { |
|
|
|
@ -43,11 +46,38 @@ public class Utils { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static Mat BitmapToMat(Bitmap b) { |
|
|
|
|
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) { |
|
|
|
|
public static boolean matToBitmap(Mat m, Bitmap b) { |
|
|
|
|
return nMatToBitmap(m.nativeObj, b); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|