gpt4 book ai didi

java - Eclipse 在将 GaussianBlur 与 OpenCV for Android 一起使用时出错

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:47 25 4
gpt4 key购买 nike

我发布了我的一小部分代码,因为我不断收到一个我似乎无法摆脱的奇怪错误。可以在这一行找到问题: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 来去除一些较小的细节。有谁知道这行代码到底出了什么问题?

最佳答案

这段代码工作正常。只需根据需要重新排列参数即可。

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

关于java - Eclipse 在将 GaussianBlur 与 OpenCV for Android 一起使用时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15208184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com