2016-07-27 104 views
0

在此代碼中,我將圖像作爲輸入並輸出相同的圖像。據我所知,如果兩幅圖像相同,那麼它們的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

讓我知道如果它爲png格式 –

+0

由於同樣的,它的PNG格式 –

+0

涼爽的工作,你介意打綠色的勾號? –

1

對了,Salman評論,無損壓縮,文件中最初的每一點數據在未壓縮後都會保留。這通常用於可能丟失信息的txt文檔或電子表格文件,例如財務數據。 PNG或GIF使用無損壓縮。 使用損失壓縮的優勢是什麼?它通過刪除冗餘信息使文件變小。通常用戶不會注意到它,並用於聲音和視頻。 JPEG使用有損壓縮,通常創作者可以決定在文件大小和圖像質量之間進行折衷時要引入多少損失。

取材大多來自:http://whatis.techtarget.com/definition/lossless-and-lossy-compression