我试图在我的android项目中使用opencv。以下是我过去几周所做事件的完整列表:
1- I used my mobile phone camera to take a picture stored it as bitmap
2- Ran face detection on it
3- Now i was supposed to use android opencv to highlight the edges in the face detection bitmap
我对ndk的东西知之甚少。我所做的只是下载了导入我的项目工作区的android opencv sdk,这个用作我的应用程序的库项目,并在我的android应用程序中使用以下代码:
Bitmap canny_image = Bitmap.createBitmap(bmFace.getWidth(), bmFace.getHeight(), Config.ARGB_8888);
canny_image = bmFace.copy(Config.ARGB_8888, true);
Mat mImg = new Mat();
Utils.bitmapToMat(canny_image,mImg);
//Converting to grayscale
Mat mGray = new Mat(mImg.rows(), mImg.cols(), CvType.CV_8UC1, new Scalar(0));
Imgproc.cvtColor(mImg , mGray, Imgproc.COLOR_BGRA2GRAY, 4);
//Applying Canny
Imgproc.Canny(mGray, mGray, 80, 90);
//Converting back to 4 channel image
Imgproc.cvtColor(mGray , mImg, Imgproc.COLOR_GRAY2RGBA, 4);
canny_image.recycle();
System.gc();
canny_image = Bitmap.createBitmap(mImg.cols(), mImg.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(mImg, canny_image);
然而,logcat显示不满意的链接错误。现在使用here中的文档。
在此链接中有一点:
If your application project doesn’t have a JNI part, just copy the corresponding OpenCV native libs from <OpenCV-2.4.6-android-sdk>/sdk/native/libs/<target_arch> to your project directory to folder libs/<target_arch>.
In case of the application project with a JNI part, instead of manual libraries copying you need to modify your Android.mk file: add the following two code lines after the "include $(CLEAR_VARS)" and before "include path_to_OpenCV-2.4.6-android-sdk/sdk/native/jni/OpenCV.mk"
我做了同样的事情。在我的应用程序中,我创建了一个文件夹库并复制了所有的.so和.h文件 / SDK /天然的/库/
但是我的库项目不再包含application.mk和android.mk文件。我完全搞砸了如何在我的Android应用程序中使用opencv。我认为链接问题是由于我没有在我的代码中加载库,但是当我在我的应用程序中使用此代码时,它给出了一个例外:
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
{
Log.i(TAG, "OpenCV loaded successfully");
mOpenCvCameraView.enableView();
} break;
default:
{
super.onManagerConnected(status);
} break;
}
}
};
从我上面提到的相同链接引用。 请专家帮我解决这个问题。我需要一些认真的帮助。被困在这里差不多一个星期了。如何在我的Android应用程序中成功使用opencv。我错过了什么?
答案 0 :(得分:0)
在初始化库之前调用库时会显示此错误。 请参阅此处:Android UnsatisfiedLinkError with OpenCV 2.4.2。请参阅正确答案下方的评论主题。因此,让图书馆初始化然后添加您想要做的任何事情&#34; Log.i(TAG,&#34; OpenCV成功加载&#34;);&#34;