首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的侵蚀函数

Java中的侵蚀函数
EN

Stack Overflow用户
提问于 2013-07-29 19:22:41
回答 1查看 2.2K关注 0票数 0

我必须把侵蚀的方法应用到图像上。然而,我遇到了一些困难。我从一个基本的例子开始,但是在这一点上,我的图像的所有像素都将与第一个像素的值保持一致。如何解决这个问题?

代码语言:javascript
复制
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;       
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-29 19:43:20

问题是,在下一次迭代传递时,数组中的前一个值已被赋值。对于就地替换,您可以尝试这样的方法:

代码语言:javascript
复制
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];

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17932475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档