2016-07-27 24 views
0

このコードでは、画像を入力として取り込み、同じ画像を出力しています。私が知る限り、2つの画像が同じであれば、PSNRの値はinfになります。ですから、私はMATLABを使ってPSNR値を計算しますが、48.05はその画像が同じでないことを示しています。しかし、私は同じイメージを読み書きしています。なぜこれが起こっているのですか?どうすれば修正できますか?Javaでの画像入力出力

public class ImageProcessing { 

    BufferedImage image = null; 
    int width; 
    int height; 

    public ImageProcessing() { 

     // Input the image 
     try { 
      File input = new File("image0.jpg"); 
      image = ImageIO.read(input); 
      width = image.getWidth(); 
      height = image.getHeight(); 


      /*int count = 0; 
      for (int i = 0; i < height; i++) { 
       for (int j = 0; j < width; j++) { 
        count++; 
        Color c = new Color(image.getRGB(j, i)); 
        System.out.println("S.No: " + count + " Red: " + c.getRed() + " Green: " + c.getGreen() + " Blue: " + c.getBlue()); 
       } 
      }*/ 
     } catch (Exception e) { 
      System.out.println("Error: " + e); 
     } 

     // Output the image 
     try { 
      File input = new File("image1.jpg"); 
      ImageIO.write(image, "jpg", input); 
      System.out.println("Writing complete."); 
     } catch (Exception e) { 
      System.out.println("Error: " + e); 
     } 
    } 

    public static void main(String[] args) { 
     // TODO code application logic here 
     System.out.println("System Start"); 

     ImageProcessing obj = new ImageProcessing(); 
    } 
} 

答えて

1

JPGlossy形式は、あなたがそれを読んで、あなたはそれを保存するたびにそれを書いた情報を失うことになるです。

おそらく、PNGやGIFなどの非損失の形式を使用してみてください。

+0

は、それが –

+0

おかげで、PNG形式でその作業 –

+0

はクールな形式をPNG形式のために同じことをしている場合、私に知らせて、あなたは緑のチェックマークを打つ気に? –

1

Salmansのコメントから、可逆圧縮を使用すると、元のファイル内のすべてのビットは、解凍後も残ります。これは、財務データなどの情報が失われる可能性のあるtxtドキュメントまたはスプレッドシートファイルで一般的に使用されます。 PNGまたはGIFは可逆圧縮を使用します。 損失圧縮を使用する利点は何ですか?冗長な情報を削除することでファイルを小さくします。通常、ユーザーはそれに気付かず、サウンドとビデオで使用されます。 JPEGは不可逆圧縮を使用しますが、通常、作成者はファイルサイズと画質のトレードオフにどのくらいの損失をもたらすかを決定できます。主に描かれた

http://whatis.techtarget.com/definition/lossless-and-lossy-compression

関連する問題