In: Computer Science
Using JAVA
The following code is able to read integers from a file that is called "start.ppm" onto a 3d array called "startImage".
Implement the code by being able to read from another file (make up any file name) and save the data onto another 3d array lets say you call that array "finalImage".
The purpose of this will be to add both arrays and then get the average
Save the average onto a separte 3darray,lets say you call it "middlearray"
Then add startImage and middlearray and get the average then save it to another array called "fourtharray"
Then add finalImage and middle array and get the average then save it to another array called "fiftharray".
Print all 5 arrays
import java.util.Scanner;
import java.io.*;
public class P1
{
public static void main(String[] args) throws IOException
{
final int ROW=267;
final int COL=400;
File file= new File("start.ppm");
Scanner inputF= new Scanner(file);
int[][][] startImage= new int[ROW][COL][3];
int row=0, col=0;
int line=1;
while (inputF.hasNext())
{
if(line<=4)
{
inputF.nextLine();
line++;
}
else
{
line+=3;
if (col< COL)
{
startImage[row][col][0]=inputF.nextInt();
startImage[row][col][1]=inputF.nextInt();
startImage[row][col][2]=inputF.nextInt();
col++;
}
else
{
row++;
col=0;
startImage[row][col][0]=inputF.nextInt();
startImage[row][col][1]=inputF.nextInt();
startImage[row][col][2]=inputF.nextInt();
col++;
}
}
}
inputF.close();
for(row=0;row {
for(col=0;col {
for(int color=0;color<3;color++)
{
System.out.println(startImage[row][col][color]);
}
}
}
}
}
import java.util.Scanner; import java.io.*; public class P1 { static final int ROW = 1000; static final int COL = 667; public static void readImage(int[][][] startImage, String fileName) { Scanner inputF = new Scanner(fileName); int row = 0, col = 0; int line = 1; while (inputF.hasNext()) { if (line <= 4) { inputF.nextLine(); line++; } else { line += 3; if (col < COL) { startImage[row][col][0] = inputF.nextInt(); startImage[row][col][1] = inputF.nextInt(); startImage[row][col][2] = inputF.nextInt(); col++; } else { row++; col = 0; startImage[row][col][0] = inputF.nextInt(); startImage[row][col][1] = inputF.nextInt(); startImage[row][col][2] = inputF.nextInt(); col++; } } } inputF.close(); } public static void printImage(int[][][] startImage) { for (int row = 0; row < ROW; row++) { for (int col = 0; col < COL; col++) { for (int color = 0; color < 3; color++) { System.out.println(startImage[row][col][color]); } } } } public static int[][][] getAverage(int[][][] p1, int[][][] p2) { int[][][] avgImage = new int[ROW][COL][3]; for(int i=0; i<ROW; i++) { for(int j=0; j<COL; j++) { for(int k=0; k<3; k++) { avgImage[i][j][k] = p1[i][j][k] + p2[i][j][k]; } } } return avgImage; } public static void main(String[] args) throws IOException { int[][][] startImage = new int[ROW][COL][3]; readImage(startImage, "start.ppm"); printImage(startImage); int[][][] finalImage = new int[ROW][COL][3]; readImage(startImage, "final.ppm"); printImage(startImage); int[][][] middlearray = getAverage(startImage, finalImage); printImage(middlearray); int[][][] fourtharray = getAverage(startImage, middlearray); printImage(fourtharray); int[][][] fiftharray = getAverage(finalImage, middlearray); printImage(fiftharray); } }
************************************************** Thanks for your question. We try our best to help you with detailed answers, But in any case, if you need any modification or have a query/issue with respect to above answer, Please ask that in the comment section. We will surely try to address your query ASAP and resolve the issue.
Please consider providing a thumbs up to this question if it helps you. by Doing that, You will help other students, who are facing similar issue.