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