我有二维图像数据1和0的1维数组。我试图实现一个标记算法来从图像中删除小对象。但是,我想知道还有什么方法可以去除小斑点。
例如。 image_array [] = {1,1,1,0,0,0 ,. 。 。 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),依此类推。