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_3d_2d_Concatenation - Fatal编程技术网

Java 如何连接三个二维数组,然后将结果显示为图像?

Java 如何连接三个二维数组,然后将结果显示为图像?,java,arrays,3d,2d,concatenation,Java,Arrays,3d,2d,Concatenation,我有三个2D数组,每个数组分别保存图像的红色、绿色和蓝色像素值。使用的初始图像是模糊图像,然后将其分割为这些RGB值,以便我可以在每个阵列上运行函数来消除图像的模糊。然后我需要连接这些数组(可能是为了创建一个新的3D数组)并显示结果图像 到目前为止,我已经尝试使用System.arraycopy(),但这只提供int值,我正在使用double数组 我还尝试将每个2D阵列堆叠在一起以创建3D阵列,如下所示 for(int i = 0; i<redPixels.length; i++)

我有三个2D数组,每个数组分别保存图像的红色、绿色和蓝色像素值。使用的初始图像是模糊图像,然后将其分割为这些RGB值,以便我可以在每个阵列上运行函数来消除图像的模糊。然后我需要连接这些数组(可能是为了创建一个新的3D数组)并显示结果图像

到目前为止,我已经尝试使用System.arraycopy(),但这只提供int值,我正在使用double数组

我还尝试将每个2D阵列堆叠在一起以创建3D阵列,如下所示

    for(int i = 0; i<redPixels.length; i++){
        for(int j = 0; j<redPixels[0].length; j++){
            concatPixels[i][j][1] = redPixels[i][j];
        }
    }

    for(int i = 0; i<greenPixels.length; i++){
        for(int j = 0; j<greenPixels[0].length; j++){
            concatPixels[i][j][2] = greenPixels[i][j];
        }
    }

    for(int i = 0; i<bluePixels.length; i++){
        for(int j = 0; j<bluePixels[0].length; j++){
            concatPixels[i][j][3] = bluePixels[i][j];
        }
    }

for(int i=0;i图像通常以RGB[A](PNG格式)格式或BGR格式或其他排列方式(可能还包括alpha通道)存储。因此,如果您想要PNG格式,您的代码将如下所示:

int[][][] array = new int[redPixels.length][redPixels[0].length][3] ;
for(int i = 0; i<redPixels.length; i++){
    for(int j = 0; j<redPixels[0].length; j++){
        concatPixels[i][j][0] = redPixels[i][j];
        concatPixels[i][j][1] = greenPixels[i][j];
        concatPixels[i][j][2] = bluePixels[i][j];
    }
}
int[][]array=newint[redPixels.length][redPixels[0.length][3];

for(int i=0;它接受响应。由于某种原因,当涉及到concatPixels[i][j][3]=bluePixels[i][j]这一行时,我仍然会得到ArrayIndexOutOfBoundsException;即使我的阵列长度都是1024。啊,是的,当然!非常感谢!很抱歉,我无法投票,因为我没有足够的代表。你知道如何将3D阵列显示为图像吗?请看以下内容: