Java Eclipse在Android的OpenCV中使用GaussianBlur时出错
我发布了我的一小部分代码,因为我一直收到一个奇怪的错误,我似乎无法摆脱。问题可以在这行找到:Imgproc.GaussianBlur(mGray,mGray,新尺寸(5,5),2.2,2)强>Java Eclipse在Android的OpenCV中使用GaussianBlur时出错,java,android,opencv,gaussian,Java,Android,Opencv,Gaussian,我发布了我的一小部分代码,因为我一直收到一个奇怪的错误,我似乎无法摆脱。问题可以在这行找到:Imgproc.GaussianBlur(mGray,mGray,新尺寸(5,5),2.2,2) public Mat onCameraFrame(Mat inputFrame) { mGray = new Mat(); Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGBA2GRAY); // doing a gaussian
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(Android版本2.4.4的OpenCV),输出显示为Canny的边缘检测。我需要高斯模糊处理一些小细节。有人知道这行代码到底出了什么问题吗 我从Alexander Smorkalov那里得到了这个解决方案,它成功了。只需更改Imgproc.GaussianBlur(mGray,mGray,新大小(5,5),2.2,2);到Imgproc.GaussianBlur(mGray,mGray,new org.opencv.core.Size(5,5),2.2,2) 此代码工作正常。只要根据需要对参数重新排序即可
Imgproc.GaussianBlur(mGray, mGray, new Size(15,15),50);
大小意味着您将使用它作为内核大小。此外,内核大小必须奇数50表示X方向上的内核标准偏差
公式:sigma=0.3*((kSize-1)*0.5-1)+0.8
此处西格玛通过50,因此sigmaX=sigmaY=50