2016-04-03 23 views
0

我需要編輯原始實例變量private in[][] pixels;爲寬度的兩倍,我已經完成算法來鏡像圖像並創建兩倍寬的新陣列只是不知道如何設置原始的int[][]像素。像素數組必須是經過修改的像素陣列,它不能以其他名稱命名。編輯二維數組實例變量大小沒有數組列表(圖像處理)

private int[][] pixels; 
    ... 

    if(transformationName == "Mirror"){ 

     int[][] mirrorTemp = new int[height][width*2]; 

     for(int h = 0; h < height; h++){ 

      for(int w = 0; w < width; w++){ 

       mirrorTemp[h][w] = pixels[h][w]; 
       mirrorTemp[h][w + width] = pixels[h][width - h - 1]; 
      } 
     } 

     int[][] pixels = new int[height][width*2]; 

     for(int h = 0; h < height; h++){ 

      for(int w = 0; w < (width*2); w++){ 

       pixels[h][w] = mirrorTemp[h][w]; 
      } 
     } 
    } 

回答

0

首先,我相信以下是你打算做的。

for(int h = 0; h < height; h++){ 
     for(int w = 0; w < width; w++){ 
      mirrorTemp[h][w] = pixels[h][w]; 
      mirrorTemp[h][w + width] = pixels[h][width - w]; 
     } 
    } 

在此之後,你可以簡單地

pixels = mirrorTemp; 

,因爲這兩個都是int[][]類型。

希望這會有所幫助。