例如,對於最近關於JPEG壓縮的對話,我想比較兩個JPEG(一個壓縮級別為100,一個壓縮級別為95)之間變化的像素。 >
如何在沒有繁瑣的自定義軟件編程的情況下生成關於更改內容的良好視覺地圖?
例如,對於最近關於JPEG壓縮的對話,我想比較兩個JPEG(一個壓縮級別為100,一個壓縮級別為95)之間變化的像素。 >
如何在沒有繁瑣的自定義軟件編程的情況下生成關於更改內容的良好視覺地圖?
Photoshop +圖層FTW。 (是的,您也可以使用Gimp或具有相同功能的任何其他編輯軟件。)
從基礎圖像開始,在上述情況下,我使用了jpeg質量100圖像。
在生成的圖像中,兩個圖像之間任何有任何區別的像素均為白色。您可以通過更改閾值來對其進行調整,以使情況“有所不同”。
示例顯示了Lightroom中jpeg 92和100之間存在很多差異。
示例在95和100之間完全沒有差異。
這不只是顯示二進制“是否已更改”,如果您想更詳細地了解它的更改量,例如按顏色通道,該怎麼辦?
結果像素越亮,它們在該顏色中的差異就越大。不利的一面是,您最終會遇到很多灰泥……因此有時只需將其閾值以查看差異在哪裡會更容易。這就是為什麼我同時構建這兩者並切換可見的原因。
如果您使用Photoshop,請按以下步驟操作:
將兩個jpeg放在兩個單獨的圖層中的同一psd文件中。它們應完全重疊,因為它們的尺寸相同。 (最重要的是哪個)。
將圖層混合模式設置為“差異”。您會看到幾乎是黑色的結果。取決於兩個原始圖層之間的質量差異,您可能會看到或多或少的噪音。
所有圖像處理軟件包都應該使此操作變得容易。如果您可以使用該系統,我將向您展示如何在Mathematica中進行操作。 Mathematica是一種編程語言,但是進行這類操作真的很容易,因此,如果您可以使用它(例如,通過大學站點許可證),我建議您嘗試一下!
首先,導入圖像:
img =導入[“ http://farm1.staticflickr.com/62/171463865_36ee36f70e.jpg”]
使用以下命令將其重新壓縮JPEG壓縮
img2 = ImportString @ ExportString [img,“ JPEG”,“ CompressionLevel” -> 0.35]
現在取像素值的差,首先將它們轉換為浮點數,以確保保留負值。
diff = ImageSubtract [Image [img,“ Real”],Image [img2,“ Real”]]
在差異圖像上看不到太多(差異很小),並且負值被裁剪為黑色。因此,讓我們重新縮放所有值以填充整個動態範圍(最小值將縮放為0,最大值將縮放為1):
ImageAdjust [diff]
ImageDifference
給出兩個圖像的絕對差,並且不產生負數。這是您更可能在圖像處理程序包中找到的操作,尤其是在GUI處理程序包(Photoshop,GIMP)中。
ImageDifference [img,img2]
我們還可以採用單個RGB通道,例如紅色通道,並使用“相反”的顏色可視化正負差異:
ArrayPlot [0.5 + ImageData [First @ ColorSeparate [diff,“ Red”]],ColorFunction ->“ RedGreenSplit”,ColorFunctionScaling -> False]
這是同一件事,差異擴大了5倍。 JPEG人工製品現在更加容易識別。
ArrayPlot [0.5 + 5 ImageData [First @ ColorSeparate [diff,“ Red”]]],
ColorFunction ->“ RedGreenSplit”,ColorFunctionScaling -> False]
使用編程語言的優點是我們可以輕鬆地自動執行此操作並了解如何
Grid @ Partition [Table [ArrayPlot [0.5 + ImageData [First @ ColorSeparate [ImageSubtract [Image [img,“ Real”]], Image [ImportString @ ExportString [img,“ JPEG”,“ CompressionLevel” -> c],“ Real”]],“ Red”]],ColorFunction ->“ RedGreenSplit”,ColorFunctionScaling -> False],{c,0.1, 1,0.1}],5]
您可以使用Imagemagick命令行工具。
composite imagesrc1.jpg imagesrc2.jpg-撰寫差異diffs.jpg
將提供絕對值每個RGB通道的差異。
最頂層是“差異”。在生成的圖像中,黑色部分顯示的是原始圖像相同的地方,任何淺色的部分則顯示出差異。