-3

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

4

2 回答 2

0

我做了一个排序代码

整数 m = 1

对于 (i = 0; i = 2; i++)

对于 (j = 0, j = 2, j++)

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

米=米+1;

}

}

对于 (i = 1; i = 9; i++)

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

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

        x[m] = x[m - 1]

}

}

}

m = 1 对于 ( 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;

        }
于 2013-01-06T13:33:15.673 回答
0

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

但是任何一种都可以。只需排序并取中间的数字。

于 2013-01-06T12:31:18.817 回答