我已经使用Android卷积实现了基本的Sharpen过滤器,如下所示(代码是Xamarin C#,但是Java几乎相同):

        private Bitmap Sharpen(Bitmap src, float weight)
    {
        var counter = (weight - 1)/4f*-1f;
        float[] matrixSharpen =
        {
            0, counter, 0,
            counter, weight, counter,
            0, counter, 0
        };
        return CreateBitmapConvolve(src, matrixSharpen);
    }


我如何做类似的事情,除了产生一个中值(或均值)滤波器而不是锐化?我似乎找不到矩阵配置应该是什么...

最佳答案

中值过滤器不是卷积过滤器。它是一个非线性滤波器。如此处所述(在西安大略大学Link的幻灯片中):
android - 使用卷积的Android中值过滤器-LMLPHP


要计算中值滤波器,您必须创建自己的卷积函数,而不是对附近的像素求和,而必须对它们取中值。

至于Mean过滤器,卷积矩阵将是(已应用您的计数器):

float[] matrixMean =
        {
            1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f,
            1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f,
            1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f
        };

关于android - 使用卷积的Android中值过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36145565/

10-10 19:47