2017-06-15 14 views
0

私はまだ初心者のJavaプログラマです。 インターネットでいくつかのプロジェクトをダウンロードしましたが、プロジェクトの1つを実行する際に問題があります。 そのプロジェクトは、顔認識に関するものです。 正常にコンパイルできますが、画像をロードしたいときは、ファイルの画像はJFileChooserに表示されません。Javaの3D顔認識プログラム

私はこの問題は、この部分にあると思う:

File folder = fc.getSelectedFile(); 
      //System.out.println("1 "+folder); 
      FileFilter dirFilter = new FileFilter() { 
       public boolean accept(File pathname) { 
        return pathname.exists() && pathname.isDirectory(); 
       } 
      }; 
      FileFilter jpgFilter = new FileFilter() { 
       public boolean accept(File pathname) { 
        String filename = pathname.getName(); 
        boolean jpgFile = (filename.toUpperCase().endsWith("JPG") 
          || filename.toUpperCase().endsWith("JPEG")); 
        return pathname.exists() && pathname.isFile() && jpgFile; 
       } 
      }; 

      File[] folders = folder.listFiles(dirFilter); 
      //System.out.println("2 "+folders); 
      trainingSet.clear(); 
      faceBrowser.empty(); 

      for (int i = 0; i < folders.length; i++) {    //For each folder in the training set directory 
       File[] files = folders[i].listFiles(jpgFilter); 
       System.out.println("3 " + files); 
       for (int j = 0; j < files.length; j++) { 
        trainingSet.add(files[j]); 
       } 
      } 

      File[] files = trainingSet.toArray(new File[1]); 

      jlist.setListData(files); 
      //there is no image files in the folderwai 
      //System.out.println(files); 
      for (int i = 0; i < files.length; i++) { 
       //System.out.println(files[0]); 
       Face f = new Face(files[i]); 
       f.description = "Face image in database."; 
       f.classification = files[i].getParentFile().getName(); 
       faceBrowser.addFace(f); 
       faces.add(f); 
      } 

      jlStatus.setIndeterminate(false); 
      jlStatus.setString(files.length + " files loaded from " + folders.length + " folders."); 
      jlStatus.paintImmediately(jlStatus.getVisibleRect()); 


      jspFaceBrowser.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
      main.invalidate(); 

      jbTrain.setEnabled(true); 
      jbCropImage.setEnabled(true); 
     } 
+0

「trainingSet」は何と宣言されていますか? –

答えて

1

これは拡張.jpgまたは.jpegで終わるファイルをサポートしています。ロードするファイルの末尾が.pngまたはその他の拡張子の場合は、コンバータを使用して.jpg(おそらくpng2jpg.comのようなオンラインのもの)に変換する必要があります。変換したら、JFileChooserに表示されます。

この動作は、この行に宣言されている:あなたが在宅もう少しなるまであなたが何か他のものに"JPG"を変えることができる、しかし、念のために

boolean jpgFile = (filename.toUpperCase().endsWith("JPG") || filename.toUpperCase().endsWith("JPEG")); 

、私は一人でそれを残すだろうプログラミングを面白くする。