如何为 loadResource() 设置 "context" 以加载可绘制图像

How to set "context" for loadResource() to load a drawable image

我正在尝试打开一个 jpeg 文件,它是我的应用程序的可绘制对象。按照 this 方法,我不知道如何设置变量 "context"(即函数 loadResource 的第一个参数)。

我的目的只是加载此图像,提取一些特征并将其与从相机抓取的帧进行比较。为此,我想要一些好的建议教程(我将使用一些特征匹配方法)。

非常感谢!

如果您在 Activity 范围内,只需写 this:

Mat img = Utils.loadResource(this, refrenceimgID, Highgui.CV_LOAD_IMAGE_COLOR);
Imgproc.cvtColor(img, gryimg, Imgproc.COLOR_RGB2BGRA);

如果您在 Fragment 范围内,请使用 getActivity() 而不是 this

只需在需要 Context 的地方使用 Activity instance 作为 MainActivity.this

或者您也可以使用您的 ApplicationClass 实例。

了解上下文 here

您需要进一步了解 Context

使用getApplicationContext():

Mat img = Utils.loadResource(getApplicationContext(), refrenceimgID, Highgui.CV_LOAD_IMAGE_COLOR);

或者如果您的代码在 activity 上,请使用 this:

Mat img = Utils.loadResource(this, refrenceimgID, Highgui.CV_LOAD_IMAGE_COLOR);

YourActivityName.this:

Mat img = Utils.loadResource(YourActivityName.this, refrenceimgID, Highgui.CV_LOAD_IMAGE_COLOR);

您可以试试下面的代码:

Context c= this;
Resources res2 = c.getResources();
Drawable drawable = res2.getDrawable(R.drawable.YOUR_DRAWABLE_NAME);