我正在尝试将List转换为2d数组,然后在对2d数组执行某些操作之后,我想将其转换回初始顺序中的List。我一直在为这个项目付出很多努力,现在我完全不知道我错过了什么,但是最后一个方法的结果根本不符合初始列表。
我用于将List转换为2d数组的方法如下:
public static Map<String, long[][]> convertListToMatrix(List<YUV> yuvList, int width, int height) {
Map<String, long[][]> imageMatrix = new HashMap<String, long[][]>();
long[][] yMatrix = new long[height][width];
long[][] uMatrix = new long[height][width];
long[][] vMatrix = new long[height][width];
for(int i = 0; i < height; i++){
for(int j = 0; j < width; j++){
YUV yuvPixel = yuvList.get((j * height) + i);
yMatrix[i][j] = yuvPixel.getY();
uMatrix[i][j] = yuvPixel.getU();
vMatrix[i][j] = yuvPixel.getV();
}
}
imageMatrix.put("y", yMatrix);
imageMatrix.put("u", uMatrix);
imageMatrix.put("v", vMatrix);
return imageMatrix;
}
对于要列出的矩阵,我使用此:
public static List<YUV> convertMatrixToYUVList(long[][] yMatrix, long[][] uMatrix, long[][] vMatrix, int width, int height) {
List<YUV> yuvList = new ArrayList<YUV>();
for(int i = 0; i < height; i++)
for(int j = 0; j < width; j++)
yuvList.add(new YUV(yMatrix[i][j], uMatrix[i][j], vMatrix[i][j]));
return yuvList;
}
任何人都可以看到我在这方面的错误吗?