Cómo aplicar desenfoque gussian a la imagen en OPENCV?

anónimo:

Soy un principiante en openCVAsí que por favor discúlpeme si mi pregunta es tonta. Básicamente estoy tratando de aplicar gussianBluren OPENCV pero está mostrando un extraño error que no entiendo por qué?

Código:

Mat tmp = new Mat (bitmap.getWidth(), bitmap.getHeight(), CvType.CV_8UC4);
Utils.bitmapToMat(bitmap, tmp);
//Imgproc.cvtColor(tmp, tmp, Imgproc.COLOR_RGB2HSV_FULL);
Imgproc.GaussianBlur(tmp,tmp,new org.opencv.core.Size(2,2),0,0);
Utils.matToBitmap(tmp,bitmap);
imgView.setImageBitmap(null);
imgView.setImageBitmap(bitmap);

Error:

CvException [org.opencv.core.CvException: cv::Exception: /hdd2/buildbot/slaves/slave_ardbeg1/50-SDK/opencv/modules/imgproc/src/smooth.cpp:816: error: (-215) ksize.width > 0 && ksize.width % 2 == 1 && ksize.height > 0 && ksize.height % 2 == 1 in function cv::Ptr<cv::FilterEngine> cv::createGaussianFilter(int, cv::Size, double, double, int)]
    at org.opencv.imgproc.Imgproc.GaussianBlur_1(Native Method)
    at org.opencv.imgproc.Imgproc.GaussianBlur(Imgproc.java:533)
    at opengl.community.myopencvexample.MainActivity$3.onClick(MainActivity.java:82)
    at android.view.View.performClick(View.java:4478)
    at android.view.View$PerformClick.run(View.java:18698)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:149)
    at android.app.ActivityThread.main(ActivityThread.java:5257)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
    at dalvik.system.NativeStart.main(Native Method)
Nabin Bhandari:

Documentación del método GaussianBlur: https://docs.opencv.org/java/2.4.9/org/opencv/imgproc/Imgproc.html#GaussianBlur(org.opencv.core.Mat,%20org.opencv.core.Mat, % 20org.opencv.core.Size,% 20double,% 20double)

public static void (src, estera DST, Tamaño ksize, doble Sigmax, doble sigmaY) desenfoque gaussiano

ksize - el tamaño del núcleo de Gauss. ksize.width y ksize.height pueden ser diferentes, pero ambos deben ser positivos y extraña . O bien, pueden ser cero y después de que se calcula a partir de Sigma *.

Usted está de paso 2, 2 para el tamaño del núcleo, que no son impares.

Usar algo como esto:

Imgproc.GaussianBlur(tmp, tmp, new Size(3, 3), 0, 0);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=207452&siteId=1
Recomendado
Clasificación