0
64x128ピクセルの画像を4x8および8x16グリッドで切り取って、Temp Folderに保存して、画像分類の対象から特徴を抽出しました。私は最初の画像を切り抜き、8x16の部分画像を取得し、各画像の特徴を抽出し、次の画像に移動して既存の部分画像を上書きする)、ランダムなグリッドで「ファイルが見つかりません」という例外が表示されます前記グリッド・セルに対するアクセスが拒否されるからである。これは、画像の数が多い(たとえば20以上)場合にのみ発生します。これを回避するにはどうしたらいいですか?java.io.FileNotFoundException:Image.IO.writeでアクセスが拒否されました。
トリミング部分のための私のコード:
package imageProcess;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Crop_Raster {
BufferedImage src;
BufferedImage dst;
public Crop_Raster(BufferedImage src) {
super();
this.src = src;
}
public void cropImage_4x8() throws IOException{
int filenumber = 1;
for (int y = 0;y<4;y++){
for (int x = 0; x<8;x++){
File output = new File("Temp/"+filenumber+".jpg");
dst = src.getSubimage(16*x,16*y, 16, 16);
ImageIO.write(dst, "jpg", output);
filenumber ++;
}
}
}
public void cropImage_8x16() throws IOException{
int filenumber = 1;
for (int y = 0;y<8;y++){
for (int x = 0; x<16;x++){
File output = new File("Temp/"+filenumber+".jpg");
dst = src.getSubimage(8*x,8*y, 8, 8);
ImageIO.write(dst, "jpg", output);
filenumber ++;
}
}
}
は、私は私の第六トレーニング画像の第二のサブ画像の処理中に起こって、次の例外を取得:
java.io.FileNotFoundException: Temp\2.jpg (Zugriff verweigert)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at javax.imageio.stream.FileImageOutputStream.<init>(Unknown Source)
at com.sun.imageio.spi.FileImageOutputStreamSpi.createOutputStreamInstance(Unknown Source)
at javax.imageio.ImageIO.createImageOutputStream(Unknown Source)
at javax.imageio.ImageIO.write(Unknown Source)
at imageProcess.Crop_Raster.cropImage_8x16(Crop_Raster.java:38)
at svm.CreateVektor.createVector_8x16(CreateVektor.java:94)
at Main_Test.main(Main_Test.java:107)
エラーがトリミング部分の間に発生します残りのメソッドはうまくいくはずです。