我需要在 Java 中实现一个方向加权中值滤波器来消除随机脉冲噪声。我不知道如何/从哪里开始。算法如下:
- 创建一个 5x5 窗口
- 从中心像素(每个方向 5 个像素)考虑 4 个方向(垂直、水平、左对角线、右对角线)
- 计算加权差并取最小值
- 最小值与阈值进行比较:
如果值 > 阈值:它是噪声像素
else:它不是噪声像素 - 计算每个方向5个像素的标准差
- 对标准差最小的方向给予额外的权重,计算加权中位数
- 嘈杂的像素被这个中值替换
- 在整个图像中移动窗口
- 重复步骤 8 到 10 次
任何人都可以指出我应该如何实现这一点的正确方向吗?任何示例或实现的代码都将受到高度赞赏。我正在使用 ImageJ,所以任何实现了这个过滤器(或它的变体)的插件都会非常有帮助。谢谢。