Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
二进制图像周长坐标超出范围-java_Java_Arrays_Image - Fatal编程技术网

二进制图像周长坐标超出范围-java

二进制图像周长坐标超出范围-java,java,arrays,image,Java,Arrays,Image,我正在尝试从二进制图像中获取周长,但我不断收到错误“java.lang.ArrayIndexOutOfBoundsException:”有人能确定我如何解决此问题吗 int perimeter = 0; Raster raster = source.getRaster(); for (int i = 1; i<source.getHeight();i++){ for(int j =1; j<source.getWidth();j++){

我正在尝试从二进制图像中获取周长,但我不断收到错误“java.lang.ArrayIndexOutOfBoundsException:”有人能确定我如何解决此问题吗

    int perimeter = 0;  
    Raster raster = source.getRaster();

    for (int i = 1; i<source.getHeight();i++){
        for(int j =1; j<source.getWidth();j++){
            if(raster.getSample(j, i, 0) == 0){
                if(raster.getSample(j+1, i, 0) == 1 || raster.getSample(j-1, i, 0) == 1 || raster.getSample(j, i+1, 0) == 1 || raster.getSample(j, i-1, 0) == 1){
                    perimeter++;
                }

            }
        }
    }
int周长=0;
光栅=source.getRaster();
对于(inti=1;i请尝试以下方法:

int perimeter = 0;  
Raster raster = source.getRaster();

for (int i=1; i<source.getHeight()-1; i++) {
    for (int j=1; j<source.getWidth()-1; j++) {
        if (raster.getSample(j, i, 0) == 0) {
            if (raster.getSample(j+1, i, 0) == 1
             || raster.getSample(j-1, i, 0) == 1
             || raster.getSample(j, i+1, 0) == 1
             || raster.getSample(j, i-1, 0) == 1) {
                perimeter++;
            }
        }
    }
}
int周长=0;
光栅=source.getRaster();

对于(int i=1;Itis works!:)我知道我做错了什么,谢谢!将接受你作为正确答案很高兴提供帮助!我添加了一些注释,以防其他人看到此页面。你尝试过调试代码吗?你考虑过图像边缘条件吗?