Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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
Android OpenCV检测圆需要太多FPS_Android_Opencv_Geometry - Fatal编程技术网

Android OpenCV检测圆需要太多FPS

Android OpenCV检测圆需要太多FPS,android,opencv,geometry,Android,Opencv,Geometry,目前,我正在开发一个应用程序,可以在相机视图中检测圆圈。到目前为止,我能够编写一个代码,成功地检测图像中的圆圈。现在我有一段代码,每帧都做同样的事情: public Mat onCameraFrame(CvCameraViewFrame inputFrame) { mat = inputFrame.rgba(); grayMat = inputFrame.gray(); Imgproc.GaussianBlur(grayMat, grayMat, n

目前,我正在开发一个应用程序,可以在相机视图中检测圆圈。到目前为止,我能够编写一个代码,成功地检测图像中的圆圈。现在我有一段代码,每帧都做同样的事情:

 public Mat onCameraFrame(CvCameraViewFrame inputFrame) {

    mat = inputFrame.rgba();
    grayMat = inputFrame.gray();    

        Imgproc.GaussianBlur(grayMat, grayMat, new Size(9, 9), 2, 2);
        Imgproc.HoughCircles(grayMat, circles,
                Imgproc.CV_HOUGH_GRADIENT, dp, minDist, param1,
                param2, minRadius, maxRadius);
        int numberOfCircles = (circles.rows() == 0) ? 0 : circles.cols();
        for (int i=0; i<numberOfCircles; i++) {
            double[] circleCoordinates = circles.get(0, i);
            int x = (int) circleCoordinates[0], y = (int) circleCoordinates[1];
        Point center = new Point(x, y);
            int radius = (int) circleCoordinates[2];           
            Core.circle(mat, center, radius, new Scalar(0,
                    255, 0), 4);      
            Core.rectangle(mat, new Point(x - 5, y - 5),
                    new Point(x + 5, y + 5),
                    new Scalar(0, 128, 255), -1);
        }   
        return mat;
}
public Mat onCameraFrame(CvCameraViewFrame inputFrame){
mat=inputFrame.rgba();
grayMat=inputFrame.gray();
GaussianBlur(grayMat,grayMat,新尺寸(9,9,2,2));
Imgproc.HoughCircles(灰色、圆形、,
Imgproc.CV_HOUGH_GRADIENT,dp,Minist,param1,
参数2,最小半径,最大半径);
int numberOfCircles=(circles.rows()==0)?0:circles.cols();

对于(inti=0;i我有同样的问题,我发现了这个,它 建议将相机分辨率降低
mOpenCvCameraView.setMaxFrameSize(640480);

我已经试过了,帧数增加到7/8 fps;我认为这是一个开始