3 回答

TA貢獻1844條經驗 獲得超8個贊
我自己的最愛是以下兩個:
compare image1 image2 -compose src diff.png
compare image1 image2 -compose src diff.pdf
上面兩個命令之間的唯一區別:第一個命令將兩個圖像之間的視覺差異顯示為PNG文件,第二個命令以PDF顯示。
生成的差異文件顯示紅色不同的所有像素。不變的顯示為白色。
簡短而甜美。
請注意,你的圖像需要不屬于同一類型。您甚至可以在一種情況下混合JPEG,TIFF,PNG:圖像應具有相同的大?。▓D像尺寸以像素為單位)。輸出格式由輸出文件名的擴展名確定。
如果出于某種原因,您需要比默認分辨率(72 dpi)更高的分辨率-然后只需添加適當的-density參數即可:
compare -density 300 image1 image2 -compose src diff.jpeg
圖解示例
以下是上述命令的各種變化結果的一些說明。注意:比較的兩個文件甚至是 PDF文件,因此它也適用于這些文件(只要它們是1頁)!
左:帶有文本的 圖像中心:原始圖像 右:以紅色像素表示的差異(=文本)。 僅紅色差異像素; 相同的像素是白色的
compare \
porsche-with-scratch.pdf porsche-original.pdf \
-compose src \
diff-compose-default.pdf
這是我上面前面建議的命令。
左:帶文字的 圖像中心:原始圖像 右: “ seagreen”像素的差異。 僅海綠色差異像素; 相同的像素是白色的
compare \
porsche-with-scratch.pdf porsche-original.pdf \
-compose src \
-highlight-color seagreen \
diff-compose-default.pdf
此命令添加一個參數以使差異像素為“ seagreen”,而不是默認的紅色。
左:帶有文本的 圖像中心:原始圖像 右:藍色差異(但帶有某些上下文背景) 僅藍色差異像素; 比較圖像中的第一個作為增亮背景l
compare \
porsche-with-scratch.pdf porsche-original.pdf \
-highlight-color blue \
diff-compose-default.pdf
此命令刪除該-compose src部分-結果是默認行為,compare該行為的默認行為是將2個衍射圖像中的第一個圖像保留為淺色背景。(這次添加了參數,以使差異像素顯示為藍色。)

TA貢獻1886條經驗 獲得超2個贊
雖然compare在許多應用程序中都表現出色,但我發現有時我更喜歡另一種方法,特別是在比較大多數灰度圖像時:
convert '(' file1.png -flatten -grayscale Rec709Luminance ')' \
'(' file2.png -flatten -grayscale Rec709Luminance ')' \
'(' -clone 0-1 -compose darken -composite ')' \
-channel RGB -combine diff.png
這個想法是:將file1.png和都轉換file2.png為灰度。然后將第一個作為生成圖像的紅色通道,將第二個作為綠色通道。藍色通道是使用darkencompose運算符從這兩個通道形成的,這實際上意味著需要占用最少的空間。
因此,兩個圖像中都是白色的東西保持白色。在兩個圖像中都是黑色的東西保持黑色。在第一個圖像中為白色但在第二個圖像中為黑色的事物變為紅色,在第二個圖像中為白色但在第一圖像中為黑色的事物變為綠色。
結果為您提供了很好的顏色編碼圖像,您可以輕松地將綠色與第一個輸入關聯,將紅色與第二個輸入關聯。這是一個示例,我在此示例中將LaTeX的輸出與KaTeX的輸出進行比較(在我修復一些錯誤以使其變得更好之前):
您可以結合的方法,用compare看哪里的東西改變了,然后用上面更詳細地看怎么它改變。

TA貢獻1859條經驗 獲得超6個贊
我最初是使用Gimp自己進行這些圖像比較的,但是我是直接在輸入圖像上使用“紋理提取”圖層模式進行的,因此公共區域最終將變成灰色,而差異將在一個方向上變成黑色,而在另一個方向上變成白色。 。較難閱讀,但生成速度更快,并且可以包含顏色信息。我想如果您使用“僅暗”而不是“屏幕”,并且將未使用的通道上的顏色改為白色而不是黑色,則您將更加匹配我的命令。
添加回答
舉報