画像をピクセルマトリクスに配置するコードがあります。この画像を4つの部分に分割し、これらの部分に対して4つの異なる画像ファイルを取得する必要があります。 次に、画像処理をしてから、それらの部分を1つの画像にまとめて結合する必要があります。 これを達成するのを手伝ってください。 注:画像は色がついていますので、4等分して1つに戻したいと思います。変更は必要ありません.4つの強度行列を得るコードはここにあります。しかし、私は何をすべきかわかりませんそれは必要ありません。ピクセルデータをJavaの画像に戻す
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
class Optimization
{
public static void main(String[] args) throws IOException
{
BufferedImage hugeImage = ImageIO.read(new File("comp.jpg"));
final byte[] pixels = ((DataBufferByte) hugeImage.getRaster().getDataBuffer()).getData();
int width = hugeImage.getWidth();
int height = hugeImage.getHeight();
if(width%2!=0)
width=width-1;
if(height%2!=0)
height=height-1;
//System.out.print(width+" "+height);
int intensity[][]=new int[width][height];
int b1[][]=new int[width/2][height/2];
int b2[][]=new int[width/2][height/2];
int b3[][]=new int[width/2][height/2];
int b4[][]=new int[width/2][height/2];
int x1=0,y1=0,x2=0,y2=0,x3=0,x4=0,y3=0,y4=0;
final int pixelLength = 3;
for (int pixel = 0, row = 0, col = 0; pixel < pixels.length; pixel += pixelLength)
{
int a1,a2,a3;
a3= ((int) pixels[pixel] & 0xff); // blue
a2= (((int) pixels[pixel + 1] & 0xff)); // green
a1= (((int) pixels[pixel + 2] & 0xff)); // red
int i=(a1+a2+a3)/3;
intensity[col][row]=i;
if((col<=width/2-1)&&(row<=height/2-1))
{
b1[x1][y1]=i;
x1++;
if(col==width/2-1)
{
x1=0;
y1++;
}
}
if((col<width)&&(row<=height/2-1)&&(col>width/2-1))
{
b2[x2][y2]=i;
x2++;
if(col==width-1)
{
x2=0;
y2++;
}
}
if((col<width/2)&&(row<height)&&(row>=height/2))
{
b3[x3][y3]=i;
x3++;
if(col==width/2-1)
{
x3=0;
y3++;
}
}
if((col>width/2-1)&&(row>height/2-1))
{
b4[x4][y4]=i;
x4++;
if(col==width-1)
{
x4=0;
y4++;
}
}
col++;
if (col == width)
{
col = 0;
row++;
}
}
for(int m=0;m<height/2;m++)
{
for(int n=0;n<width/2;n++)
{
System.out.print(b1[n][m]+" ");
}
System.out.println();
}
}
}
申し訳ありませんが、あなたがしようとしていることは明らかではありません。いくつかの例を示してください。 –
イメージを4つの部分に分割したいだけです。それだけです。 – Srijan
あなたのコードは機能しますか?それは失敗ですか?デバッガでそのステップを踏んで、期待どおりにどこからずれているかを確認しましたか?それが失敗すると、何が間違った行動ですか?例外はありますか?その場合は、スタックトレースを表示して、コード内で例外の発生場所を教えてください。あなたは私たちを助けなければなりません。 –