我想对窗口大小为 3、5 和 7 的黑白 256x256 图像应用中值过滤...我找不到可以使用的排序算法。你能帮助我并给我一些想法吗?
问问题
1337 次
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 回答