从二进制图像中删除斑点的最简单方法

时间:2014-07-08 21:09:36

标签: image

我有二维图像数据1和0的1维数组。我试图实现一个标记算法来从图像中删除小对象。但是,我想知道还有什么方法可以去除小斑点。

例如。 image_array [] = {1,1,1,0,0,0 ,. 。 。 1,1,1}

1 个答案:

答案 0 :(得分:1)

如果“小点”是指impulse noise (aka, "salt and pepper" noise),那么你可以只是implement a median filter。对于像这样的数组:

1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0

结果将成为:

1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0

所以,任何脉冲噪音都消失了。此外,您可以通过adaptive median filtering大大改善您的搜索结果。这种方法的另一个好处是,事先检测像素是否真的有噪声,需要过滤,或者它只是一个可以安全忽略的统计异常值。

如果斑点大于单个像素,则只需使用较大的中值滤波器内核。对于侧面的点m x m,您只需要一个大小为(2m)+1的中值滤波器内核。因此,对于1x1像素大小的斑点,您只需3x3(或者在您的情况下,3x1),依此类推。