6ae4a9b09b
EMBED_CUDA and FORCE_EMBED_OPENCV flags added to cmake macro add_android_project; INSTALL_CUDA_LIBRARIES option added to OpenCV.mk opencv_dynamicuda library installation with enabled OPENCV_INSTALL_MODULES flag fixed; CUDA initialization apportunity added to OpenCVLoader.initDebug(); Tutorial-4-CUDA sample reimplemented with static OpenCV and CUDA initialization.
105 lines
2.6 KiB
Java
105 lines
2.6 KiB
Java
package org.opencv.android;
|
|
|
|
import org.opencv.core.Core;
|
|
|
|
import java.util.StringTokenizer;
|
|
import android.util.Log;
|
|
|
|
class StaticHelper {
|
|
|
|
public static boolean initOpenCV(boolean InitCuda)
|
|
{
|
|
boolean result;
|
|
String libs = "";
|
|
|
|
if(InitCuda)
|
|
{
|
|
loadLibrary("cudart");
|
|
loadLibrary("nppc");
|
|
loadLibrary("nppi");
|
|
loadLibrary("npps");
|
|
loadLibrary("cufft");
|
|
loadLibrary("cublas");
|
|
}
|
|
|
|
Log.d(TAG, "Trying to get library list");
|
|
|
|
try
|
|
{
|
|
System.loadLibrary("opencv_info");
|
|
libs = getLibraryList();
|
|
}
|
|
catch(UnsatisfiedLinkError e)
|
|
{
|
|
Log.e(TAG, "OpenCV error: Cannot load info library for OpenCV");
|
|
}
|
|
|
|
Log.d(TAG, "Library list: \"" + libs + "\"");
|
|
Log.d(TAG, "First attempt to load libs");
|
|
if (initOpenCVLibs(libs))
|
|
{
|
|
Log.d(TAG, "First attempt to load libs is OK");
|
|
String eol = System.getProperty("line.separator");
|
|
for (String str : Core.getBuildInformation().split(eol))
|
|
Log.i(TAG, str);
|
|
|
|
result = true;
|
|
}
|
|
else
|
|
{
|
|
Log.d(TAG, "First attempt to load libs fails");
|
|
result = false;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
private static boolean loadLibrary(String Name)
|
|
{
|
|
boolean result = true;
|
|
|
|
Log.d(TAG, "Trying to load library " + Name);
|
|
try
|
|
{
|
|
System.loadLibrary(Name);
|
|
Log.d(TAG, "Library " + Name + " loaded");
|
|
}
|
|
catch(UnsatisfiedLinkError e)
|
|
{
|
|
Log.d(TAG, "Cannot load library \"" + Name + "\"");
|
|
e.printStackTrace();
|
|
result &= false;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
private static boolean initOpenCVLibs(String Libs)
|
|
{
|
|
Log.d(TAG, "Trying to init OpenCV libs");
|
|
|
|
boolean result = true;
|
|
|
|
if ((null != Libs) && (Libs.length() != 0))
|
|
{
|
|
Log.d(TAG, "Trying to load libs by dependency list");
|
|
StringTokenizer splitter = new StringTokenizer(Libs, ";");
|
|
while(splitter.hasMoreTokens())
|
|
{
|
|
result &= loadLibrary(splitter.nextToken());
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// If dependencies list is not defined or empty.
|
|
result &= loadLibrary("opencv_java");
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
private static final String TAG = "OpenCV/StaticHelper";
|
|
|
|
private static native String getLibraryList();
|
|
}
|