在OpenCV中,我使用:
检索用于图像处理的Gabor内核,该内核是9:9矩阵 Imgproc.getGaborKernel(...)
我有原始图像的灰色矩阵。 (我甚至不确定内核是应该是图像的大小还是只是一小段,我相当确定小内核)
如何对两者进行卷积并得到卷积的输出?
我正在尝试将Gabor小波滤波器放在一起进行边缘检测。
编辑:就矩阵的卷积似乎而言,看起来像opencv“filter2d”方法就是这样做的,并且可以在Android OpenCV api的Imgproc类中找到。然而,当我进行卷积并将其放到屏幕上时,它只是一个黑色图像。
Size size = new Size(9,9);
Mat gaborKernel = Imgproc.getGaborKernel(size, 3.0, -Math.PI/4, Math.PI, 10.0, Math.PI*0.5, CvType.CV_64F);
Imgproc.filter2D(intermediate, output, -1, gaborKernel);
Bitmap temp = Bitmap.createBitmap(intermediate.cols(), intermediate.rows(), Config.ARGB_8888);
Utils.matToBitmap(output, temp);
我做了一个系统输出来查看值,所有值都非常小,如下所示。
答案 0 :(得分:2)
您需要规范化内核。
只需循环遍历内核矩阵,计算值的总和。然后再循环以将每个值除以总和。这可以确保您的内核不会改变整体亮度。