java - Java中的腐 eclipse 函数

标签 java bufferedimage imagefilter mathematical-morphology

我必须将腐 eclipse 方法应用于图像。 但是,我遇到了一些困难。 我从一个基本示例开始,但此时图像的所有像素都将保留第一个像素的值。 如何解决这个问题?

public static int[] erosion(int array[])
{
    //int array1[] = new int[array.length];  
    // System.arraycopy(array, 0, array1, 0, array.length);          
    for(int i=1; i < array.length; i++)
    {
        if (array[i-1] < array[i]) {
            array[i] = array[i-1];
        }
        if (array[i+1] < array[i]) {
            array[i] = array[i+1];
        }
    }
    return array;       
}

最佳答案

问题在于数组中的前一个值已在下一次迭代中分配。对于就地替换,您可以尝试这样的操作:

int previous = array[0];
for (int i = 0; i < array.length - 1; i++) {
    int res = Math.min(previous, array[i]);
    res = Math.min(res, array[i + 1]);
    previous = array[i];
    array[i] = res;
}
array[array.length - 1] = Math.min(previous, array[array.length - 1];

编辑:扩展到第一个和最后一个值。

关于java - Java中的腐 eclipse 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932475/

相关文章:

java - 如何在 Java 中修剪网页的 HTML 以删除标签并仅显示文本内容?

Java:我可以打印屏幕上显示的 JFrame/JPanel 吗?

java - 从不同包中的类加载包内的 Java 图像

python-3.x - 使用出现次数最多的像素值的图像过滤器

java - 如何在 google kubernetes 中访问 postgresql pod/服务

image - 如何将 BufferedImage 转换为图像以在 JSP 上显示

java - 用 Java 在图像上精确绘制

java - 如何使用离散傅里叶变换在频域中的图像上实现低通滤波器?

java - Java 中的 OpenCV 用于图像过滤

java - 如何在 "| "之前设置粗体文本