当OpenCV for Android使用GaussianBlur时,Eclipse会给出错误

我发布了我的代码的一小部分,因为我不断得到一个奇怪的错误,我似乎无法摆脱。 这个问题可以在这行find: Imgproc.GaussianBlur(mGray,mGray,new Size(5,5),2.2,2);

public Mat onCameraFrame(Mat inputFrame) { mGray = new Mat(); Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGBA2GRAY); // doing a gaussian blur prevents getting a lot of false hits Imgproc.GaussianBlur(mGray, mGray, new Size (5,5), 2.2, 2); // Values 3 and 4are the LowerThreshold and UpperThreshold. Imgproc.Canny(inputFrame, mIntermediateMat, 80, 100); Imgproc.cvtColor(mIntermediateMat,mRgba, Imgproc.COLOR_GRAY2BGRA, 4); return mIntermediateMat; } 

我从Eclipse获得的错误是:

 The method GaussianBlur(Mat,Mat,Size,double,double) in the type imgproc is not applicable for the arguments (Mat,Mat,CameraSize,int,int) 

我正在使用tutorial3 Camera-control(OpenCV for Android版本2.4.4)的编辑版本,其输出显示为Canny的边缘检测。 我需要GaussianBlur来摆脱一些较小的细节。 有谁知道这行代码究竟是错误的?

Solutions Collecting From Web of "当OpenCV for Android使用GaussianBlur时,Eclipse会给出错误"

这段代码工作正常。 只要您需要重新sorting参数。

 Imgproc.GaussianBlur(mGray, mGray, new Size(15,15),50); 

大小意味着你将使用它作为内核大小。 内核大小也一定是奇怪的! 50显示了X方向上的内核标准偏差。

公式: sigma = 0.3 * ((kSize-1)*0.5 - 1) + 0.8

这里sigma传递50,所以sigmaX = sigmaY = 50

我从亚历山大Smorkalov得到这个解决scheme,它的工作。 只要改变Imgproc.GaussianBlur(mGray,mGray,new Size(5,5),2.2,2); 到Imgproc.GaussianBlur(mGray,mGray,new org.opencv.core.Size(5,5),2.2,2);