Немного подробного описания кода, в котором вы назвали medianFilter()
, могло бы быть более информативным, но в соответствии с кодом, который вы упомянули.
Я бы предложил сформировать ваш код какниже в onResume()
:
@Override
public void onResume() {
super.onResume();
if (!OpenCVLoader.initDebug()) {
Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_1_0, this, mLoaderCallback);
} else {
Log.d(TAG, "OpenCV library found inside package. Using it!");
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}
Добавление к ответу, который я дал раньше
Я постараюсь объединить ниже все, что я пытался решить эту проблему:
Я попытался сделать несколько трюков с LoaderCallbackInterface
:
public class LoaderCallBackHelper: Java.Lang.Object,ILoaderCallbackInterface
{
public void OnManagerConnected(int p0)
{
switch (p0)
{
case LoaderCallbackInterface.Success:
System.Console.WriteLine("Success");
break;
default:
this.OnManagerConnected(p0);
break;
}
}
public void OnPackageInstall(int p0, IInstallCallbackInterface p1)
{
p1.Install();
System.Console.WriteLine(p1.PackageName);
}
Затем что-то вроде этого (в MainActivity):
ILoaderCallbackInterface t = new LoaderCallBackHelper();
public MainActivity()
{
if(OpenCVLoader.InitAsync(OpenCVLoader.OpencvVersion3000,this,t))
{
System.Console.WriteLine("OK");
}
}
Проблема все еще не решена
Затем я попробовал трюк с
public class BaseLoaderHelper : BaseLoaderCallback
{
public BaseLoaderHelper(Context context):base(context)
{
}
}
BaseLoaderCallback _t = new BaseLoaderHelper(this);
if(OpenCVLoader.InitAsync(OpenCVLoader.OpencvVersion3000,this,_t))
{
System.Console.WriteLine("OK");
}
}
Все еще получил ту же ошибку, которую вы получили.
Мое окончательное решение для этого было, я скачал OpenCVверсия 2.4.11 и переустановлена в мой проект. Теперь все работает, штрафы:
public MainActivity()
{
if (!OpenCVLoader.InitDebug())
{
System.Console.WriteLine("Failed to INIT \n OpenCV Failure");
}
else
{
System.Console.WriteLine("OpenCV INIT Success");
}
}
Попробуйте, таким образом, это должно определенно работать.