當我們需要對照圖片壓縮前後的差異,或是對照差異很小的波形圖或是頻譜圖等複雜的圖形時,若是用肉眼直接對照,看一兩張圖還好,若是有很多張圖要處理,那可真是傷眼。ImageDifferencer是一個簡單的程式,可以將兩張圖片做「減法」運算,並將運算結果最大化,讓兩張圖片的差異看起來更明顯,最後將結果直接輸出成另一張圖片。



取得ImageDifferencer

使用ImageDifferencer

本程式只提供命令列介面,使用方式很簡單,可以使用以下指令來執行:

java -jar ImageDifferencer.jar

執行後可以輸入圖片的輸入路徑和輸出路徑,以及輸出的格式。

image-differencer

也可以直接在命令列參數傳入路徑和格式,指令格式如下:

java -jar ImageDifferencer.jar INPUT_IMAGE_FILE_PATH_1 INPUT_IMAGE_FILE_PATH_2 OUTPUT_IMAGE_FILE_PATH [PNG/JPEG/TIFF/BMP/GIF]

image-differencer

檢查圖片壓縮品質

MagicCat.jpg這張大小7.1MB、解析度3776x2520的圖片來舉例,可以點我下載原圖

將圖片壓縮後,只剩1.4MB。

magicimage

比較壓縮圖和原圖的差異,結果圖如下:

image-differencer

差異愈大的話,細節愈明顯,代表兩張圖品質的差異愈多。

檢查聲音訊號壓縮音質

ImageDifferencer甚至還可以用來檢查聲音訊號的壓縮音質,原理很簡單,就是將兩個聲音訊號來源(如兩個音樂檔案)轉成頻譜圖,再相減之後比較差異程度,即可直接用肉眼看出聲音品質的差異。

以下來看看WAV轉AAC的頻譜差異。

首先看一下WAV檔案的頻譜圖。

image-differencer

再看一下使用FAAC參數-q 700轉出來的AAC檔案。

image-differencer

將它們使用ImageDifferencer處理之後,就可以知道兩者的音質差異了!

image-differencer