中位数过滤,窗口大小3,5,7与C

时间:2013-01-06 05:06:55

标签: c image algorithm filtering median

我想在黑色和黑色上应用中值过滤。窗口大小为3,5和7的白色256x256图像... 我找不到可以使用的排序算法。 你能帮助我并给我一些想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用选择算法查找中位数而不进行排序: http://en.wikipedia.org/wiki/Selection_algorithm

但任何形式都可以。只需排序并取出中间的数字。

答案 1 :(得分:0)

我制作了一个分类代码

int m = 1

表示(i = 0; i = 2; i ++)

for(j = 0,j = 2,j ++)

x [m]< - outputImage [i,j];

m = m + 1;

}

}

for(i = 1; i = 9; i ++)

for ( j = 9; j = i; j-- )

    if x[m] < x [m - 1]

        x[m] = x[m - 1]

}

}

}

m = 1 for(i = 0; i = 2; i ++)

for ( j = 0, j = 2, j++)

outputImage[i,j] = x[m];

m = m + 1;

}

}

排序后我把数字放在中间... 我现在的问题是我不知道如何将它作为for循环应用于我的代码 代码是这样的,我想在3x3窗口大小中使用中值滤波(我已经推出了盐和胡椒噪声)

for (i = 0; i < ROWS; i++)

{
    for (j = 0; j < COLUMNS; j++)

    {   

            outputImage[i][j] = inputImage[i][j];

    }

}
    for( p = 0; p <500; p++)

    {
        outputImage[rand() % 256 ] [rand() % 256] = 0;

        }