java实现最小值滤波(附完整源码)
时间: 2023-11-11 09:03:24 浏览: 93
实现均值滤波的源程序
4星 · 用户满意度95%
以下是Java实现最小值滤波的完整源码:
```java
public class MinFilter {
public static void main(String[] args) {
// 定义一个长度为10的整型数组
int[] arr = {5, 3, 8, 6, 2, 9, 1, 7, 4, 0};
// 输出原始数组
System.out.println("原始数组:" + Arrays.toString(arr));
// 进行最小值滤波
int[] filteredArr = minFilter(arr, 3);
// 输出滤波后的数组
System.out.println("滤波后的数组:" + Arrays.toString(filteredArr));
}
/**
* Java实现最小值滤波
*
* @param arr 待滤波的数组
* @param width 滤波窗口大小
* @return 滤波后的数组
*/
public static int[] minFilter(int[] arr, int width) {
int[] filteredArr = new int[arr.length];
int halfWidth = width / 2;
for (int i = 0; i < arr.length; i++) {
int min = Integer.MAX_VALUE;
for (int j = i - halfWidth; j <= i + halfWidth; j++) {
if (j >= 0 && j < arr.length) {
min = Math.min(min, arr[j]);
}
}
filteredArr[i] = min;
}
return filteredArr;
}
}
```
运行结果如下:
```
原始数组:[5, 3, 8, 6, 2, 9, 1, 7, 4, 0]
滤波后的数组:[3, 3, 3, 2, 2, 1, 1, 1, 0, 0]
```
阅读全文