1

我试图在我的 Android OpenCV 应用程序中显示在以下代码中实现的计时器的结果:

case ImageManipulationsActivity.VIEW_MODE_MEDIAN:
capture.retrieve(mRgba, Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA); 
if (mRgbaInnerWindow == null|| mGrayInnerWindow == null)
CreateAuxiliaryMats();
long start = System.currentTimeMillis();
Imgproc.medianBlur(mRgbaInnerWindow, mIntermediateMat, 25);
Core.convertScaleAbs(mIntermediateMat, mIntermediateMat, 1./10, 0);
Core.convertScaleAbs(mIntermediateMat, mRgbaInnerWindow, 10, 0);
long end = System.currentTimeMillis();
long elapse = end - start;
Toast.makeText(ImageManipulationsView.context.getActivity(), "" + elapse + "ms is used
to process", Toast.LENGTH_LONG).show();

我收到错误“无法解析上下文或不是字段”我做错了什么?我的计时器正确吗?我怎样才能显示它的结果?

@Sahil Mahajan Mj 现在我有一个错误:

Toast.makeText(ImageManipulationsView.this, "" + elapse + "ms is used to",
Toast.LENGTH_LONG).show();

从我一开始粘贴的代码。错误是“Toast 类型中的方法 makeText 不适用于参数”如果有帮助,我的应用是对 OpenCV4Android 包中的 Image-manipulations 示例的修改

@Blundell 我已将上下文变量更改为公共,当我从我的应用程序菜单中选择 medianBlur 时,整个应用程序崩溃。

4

2 回答 2

0

在 Android 设计标准中,您的代码有点错误。

但看起来你无法context从这个类中“看到”变量。

在您的ImageManipulationsView班级中将context变量更改为公共。

 public Context context;
于 2013-01-09T09:27:16.100 回答
0

如果你在谈论这个,

Toast.makeText(ImageManipulationsView.context.getActivity(), "" + elapse + "ms is used
to process", Toast.LENGTH_LONG).show();

你只需要像这样的Activity的上下文,

ImageManipulationsView.this

如果还有其他错误,您需要发布实际错误所在的代码。只有这样我才能编辑我的答案。

于 2013-01-09T09:24:37.050 回答