Misalnya, untuk percakapan terkini tentang kompresi JPEG, saya ingin membandingkan piksel untuk piksel yang berubah antara dua JPEG (satu dengan tingkat kompresi 100, dan satu dengan tingkat kompresi 95).
Bagaimana cara menghasilkan peta visual yang bagus dari apa yang berubah tanpa pemrograman perangkat lunak khusus yang membosankan?
Jawaban:
Photoshop + Layers FTW. (Ya, Anda juga dapat menggunakan Gimp, atau perangkat lunak pengeditan lainnya dengan fungsi yang sama.)
Mulailah dengan gambar dasar Anda, dalam kasus di atas, saya menggunakan gambar 100 kualitas jpeg.
Pada gambar yang dihasilkan, piksel apa pun yang berbeda di antara kedua gambar akan berwarna putih. Anda dapat menyesuaikannya untuk memungkinkan hal-hal menjadi "sedikit berbeda" dengan mengubah nilai ambang batas.
Contoh menunjukkan BANYAK perbedaan antara jpeg 92 dan 100 dari Lightroom.
Contoh tidak menunjukkan perbedaan sama sekali antara 95 dan 100.
Bukannya itu hanya menunjukkan biner "diubah atau tidak", bagaimana jika Anda ingin lebih detail tentang seberapa banyak ia berubah, katakan dengan saluran warna?
Semakin cerah piksel yang dihasilkan, semakin banyak warnanya. Kelemahannya adalah Anda berakhir dengan banyak lumpur abu-abu ... jadi terkadang lebih mudah untuk hanya mengiriknya untuk melihat perbedaannya. Itu sebabnya saya membangun keduanya dan beralih mana yang terlihat.
sumber
Jika Anda menggunakan Photoshop, inilah cara saya melakukannya:
Letakkan dua jpeg dalam file psd yang sama, dalam dua lapisan terpisah. Mereka harus tumpang tindih persis, karena dimensi mereka sama. (mana yang berjalan di atas tidak masalah).
Atur blending mode layer ke "Perbedaan." Anda akan melihat sebagian besar hasil hitam. Tergantung pada perbedaan kualitas antara dua lapisan asli Anda mungkin melihat lebih atau kurang dari kebisingan.
sumber
Semua paket pemrosesan gambar harus membuatnya mudah. Saya akan menunjukkan kepada Anda bagaimana melakukannya di Mathematica, jika Anda memiliki akses ke sistem ini. Mathematica adalah bahasa pemrograman, tetapi sangat mudah untuk melakukan manipulasi semacam ini, jadi jika Anda memiliki akses ke sana (misalnya melalui lisensi situs universitas), saya sarankan Anda mencobanya!
Pertama, impor gambar:
Kompres ulang menggunakan kompresi JPEG
Sekarang ambil perbedaan nilai piksel, konversikan terlebih dahulu dengan angka floating point untuk memastikan bahwa nilai negatif dipertahankan.
Tidak banyak yang terlihat pada gambar perbedaan (perbedaannya kecil), dan nilai negatif terpotong menjadi hitam. Jadi mari kita skala ulang semua nilai untuk mengisi seluruh rentang dinamis (minimum akan diskalakan ke 0, maksimum ke 1):
ImageDifference
memberikan perbedaan absolut dari kedua gambar, dan tidak menghasilkan angka negatif. Ini adalah operasi yang lebih mungkin Anda temukan dalam paket pemrosesan gambar, terutama yang GUI (Photoshop, GIMP).Kami juga dapat mengambil satu saluran RGB, misalnya yang merah, dan memvisualisasikan perbedaan positif dan negatif menggunakan warna 'berlawanan':
Inilah hal yang sama, dengan perbedaan diperkuat 5 kali. Artefak JPEG lebih mudah dikenali sekarang.
Keuntungan menggunakan bahasa pemrograman adalah kita dapat dengan mudah mengotomatisasi ini dan melihat bagaimana perbedaannya berubah untuk "tingkat kompresi" antara 0,1 dan 1,0:
sumber
Anda dapat menggunakan alat baris perintah Imagemagick.
akan memberikan nilai absolut perbedaan untuk setiap saluran RGB.
sumber
GitHub memiliki beberapa alat diff gambar yang menarik di dalamnya di web, seperti dijelaskan di sini dan diperlihatkan dalam demo ini .
sumber
Dalam gambar yang dihasilkan bagian hitam menunjukkan di mana gambar asli identik dan apa pun yang lebih terang menunjukkan perbedaan.
sumber