Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用Android解析OpenCV中的putText()_Java_Android_Opencv - Fatal编程技术网

Java 无法使用Android解析OpenCV中的putText()

Java 无法使用Android解析OpenCV中的putText(),java,android,opencv,Java,Android,Opencv,我正在用OpenCV开发一个OCR应用程序。为此,我创建了onCameraFrame(),但显示了“无法解析方法putText()”。 我从Stackover那里找到了一些答案 导入org.opencv.core.Point 但我已经把它们都导入了 org.opencv.core.Point; org.opencv.core.Scalar 但仍然显示出同样的错误。有其他方法解决此错误吗?提前谢谢。请帮帮我 public Mat onCameraFrame(CameraBridgeViewBase

我正在用OpenCV开发一个OCR应用程序。为此,我创建了
onCameraFrame()
,但显示了“无法解析方法putText()”。 我从Stackover那里找到了一些答案

导入org.opencv.core.Point

但我已经把它们都导入了

org.opencv.core.Point; org.opencv.core.Scalar

但仍然显示出同样的错误。有其他方法解决此错误吗?提前谢谢。请帮帮我

public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inFrame) {
Mat inputFrame = inFrame.rgba();

    inputFrame.copyTo(mRgba);

   switch (HelloV.viewMode) {

        case HelloV.VIEW_MODE_RGBA: {

            //cannot resolve method putText 
            Core.putText(mRgba, "Video Mode", new Point(10, 50), 3, 1, 

         new Scalar(255, 0, 0, 255), 2);

            // Update start recordtime until starting recording

        }break;

        case HelloV.SAVE_IMAGE_MAT: {

            long curTime = new Date().getTime();
  //cannot resolve method putText
    Core.putText(mRgba, "Record Mode", new Point(10, 50), 3, 1,                   

           new Scalar(255, 0, 0, 255), 2);
           long timeDiff = curTime - recordStart;   

           Log.i("timeDiff",Long.toString(timeDiff));

           if ( timeDiff < MAX_VIDEO_INTERVAL_IN_SECONDS) {
                if ((mframeNum % FRAME2GRAB) == 0) {
                    saveImageToArray(inputFrame);
                    mframeNum++;
                }
                else
                    mframeNum++;
            }
            else
            {
                mframeNum = 0;
                turnOffCapture();
            }
        }break;
        case HelloV.CAPT_STILL_IM :
        {
            saveImageToArray(inputFrame);

            //RIGHT HERE IS WHERE I NEED TO MODIFY!  CAPTURE IMAGE
            //WITH THE CAMERA INSTEAD OF USING THE PREVIEW.
            //IF I CAN DO THIS, WE CAN GET AND STITCH FULL-RES IMAGES...
            //Camera.Parameters params = mCamera.getParameters();
            //Mat theImage = imageCapturer.getCapturedImage(1);
            //saveImageToArray(theImage);
            HelloV.viewMode = HelloV.VIEW_MODE_RGBA;
        }
    }
    return mRgba;
}
CameraFrame上的公用Mat(CameraBridgeViewBase.CvCameraViewFrame inFrame){
Mat inputFrame=inFrame.rgba();
inputFrame.copyTo(mRgba);
开关(HelloV.viewMode){
案例HelloV.VIEW\u MODE\u RGBA:{
//无法解析方法putText
Core.putText(mRgba,“视频模式”,新点(10,50),3,1,
新标量(255,0,0255),2);
//更新开始录制时间,直到开始录制
}中断;
案例HelloV.SAVE_IMAGE_MAT:{
long curTime=new Date().getTime();
//无法解析方法putText
Core.putText(mRgba,“记录模式”,新点(10,50),3,1,
新标量(255,0,0255),2);
long-timeDiff=curTime-recordStart;
Log.i(“timeDiff”,Long.toString(timeDiff));
if(时间差<最大视频间隔(单位:秒){
如果((mframeNum%FRAME2GRAB)==0){
saveImageToArray(inputFrame);
mframeNum++;
}
其他的
mframeNum++;
}
其他的
{
mframeNum=0;
关断捕捉();
}
}中断;
案例HelloV.CAPT\u仍然\u IM:
{
saveImageToArray(inputFrame);
//这里就是我需要修改的地方!捕获图像
//使用相机而不是使用预览。
//如果我能做到这一点,我们可以得到和缝合全分辨率图像。。。
//Camera.Parameters params=mCamera.getParameters();
//Mat theImage=imageCapturer.getCapturedImage(1);
//将图像保存到阵列(图像);
HelloV.viewMode=HelloV.VIEW_MODE_RGBA;
}
}
返回mRgba;
}

这取决于Android OpenCV库的版本:从3.0版
开始。putText()
(使用相同的参数)从
Core
移动到
Imgproc
类。因此,您应该使用:

Imgproc.putText(mRgba, "Video Mode", new Point(10, 50), 3, 1, new Scalar(255, 0, 0, 255), 2);
而不是:

Core.putText(mRgba, "Video Mode", new Point(10, 50), 3, 1, new Scalar(255, 0, 0, 255), 2);

诸如此类。

我认为这可能是丢失的本机库,因此导致生成错误,请确保已正确添加OpenCV sdk。您可以查看我的答案以获得帮助:谢谢您的回复,我再次安装了OpenCV,并且我还做了安德烈·奥梅尔琴科先生的更改。现在错误消失了。非常感谢。:)您好,先生,我删除了OpenCV并重新安装了它。我试过你的方法。它现在正在工作。非常感谢,先生。