Bagaimana saya bisa mendapatkan perbedaan antara dua gambar? Saya memiliki gambar aslinya. Seseorang telah menulis duplikat persis dari gambar aslinya. Sekarang, saya perlu membandingkan yang asli dengan yang ditulis pada gambar dan hanya mengekstrak tulisan dalam format gambar.
Contoh: Saya punya foto rumah. Seseorang mengambil salinan dan menulis "Halo!" pada salinan. Saya ingin entah bagaimana membandingkan dua gambar, menghapus rumah, dan dibiarkan dengan gambar kata "Halo!".
Apakah ini mungkin dengan ImageMagick? Saya tahu ada cara untuk mendapatkan perbedaan statistik antara gambar, tetapi bukan itu yang saya cari.
image
image-processing
imagemagick
diff
difference
Justin Noel
sumber
sumber
Jawaban:
Favorit saya sendiri adalah dua ini:
Satu-satunya perbedaan antara 2 perintah di atas: yang pertama menunjukkan perbedaan visual antara dua gambar sebagai file PNG, yang kedua sebagai PDF.
File diff yang dihasilkan menampilkan semua piksel yang berbeda dalam warna merah. Yang tidak berubah tampak putih.
Pendek dan manis.
Catatan, gambar Anda tidak perlu harus bertipe sama. Anda bahkan dapat mencampur JPEG, TIFF, PNG - dalam satu kondisi: gambar harus berukuran sama (dimensi gambar dalam piksel). Format output ditentukan oleh ekstensi nama file output.
Jika Anda, karena alasan tertentu, memerlukan resolusi yang lebih tinggi daripada yang standar (72 dpi) - maka tambahkan saja
-density
parameter yang sesuai :Contoh ilustrasi
Berikut adalah beberapa ilustrasi hasil untuk variasi dari perintah di atas. Catatan: kedua file yang dibandingkan itu bahkan file PDF , jadi ini juga berfungsi dengan baik (asalkan 1-halaman)!
Kiri: Gambar dengan pusat teks : Gambar asli Kanan: Perbedaan (= teks) dalam piksel merah.
Ini adalah perintah yang sama yang saya sarankan sebelumnya di atas.
Kiri: Gambar dengan pusat teks : Gambar asli Kanan: Perbedaan dalam piksel 'seagreen'.
Perintah ini menambahkan parameter untuk membuat perbedaan piksel 'seagreen' alih-alih merah standar.
Kiri: Gambar dengan teks Pusat: Gambar asli Kanan: Biru berbeda (tetapi dengan beberapa latar belakang konteks) l
Perintah ini menghapus
-compose src
bagian - hasilnya adalah perilaku defaultcompare
yang membuat latar belakang yang terang sebagai yang pertama dari 2 gambar yang berbeda. (Kali ini dengan parameter yang ditambahkan untuk membuat piksel diff muncul berwarna biru.)sumber
'compare'
. Untuk v7.x dari ImageMagick Anda harus menjalankannya'magick compare'
.Meskipun
compare
melakukan pekerjaan yang baik untuk banyak aplikasi, saya menemukan bahwa kadang-kadang saya lebih suka pendekatan yang berbeda, terutama ketika membandingkan gambar yang sebagian besar skala abu-abu:Idenya adalah berikut: mengkonversi baik
file1.png
danfile2.png
untuk grayscale. Kemudian trat yang pertama sebagai saluran merah dari gambar yang dihasilkan, yang kedua sebagai saluran hijau. Saluran biru terbentuk dari keduanya menggunakandarken
operator penulisan, yang pada dasarnya berarti mengambil minimum.Jadi hal-hal yang putih di kedua gambar tetap putih. Hal-hal yang hitam di kedua gambar tetap hitam. Benda-benda yang berwarna putih di gambar pertama tetapi hitam di belokan kedua merah, dan benda-benda yang putih di belokan kedua tetapi hitam di belokan pertama berwarna hijau.
Hasilnya memberi Anda gambar kode warna dengan baik di mana Anda dapat dengan mudah mengaitkan hijau dengan input pertama dan merah dengan yang kedua. Berikut adalah contoh di mana saya menggunakan ini untuk membandingkan output dari LaTeX dengan yang dari KaTeX (sebelum saya memperbaiki beberapa bug untuk membuat ini lebih baik):
Anda dapat menggabungkan pendekatan, gunakan
compare
untuk melihat di mana sesuatu berubah dan kemudian menggunakan di atas untuk melihat lebih detail bagaimana itu berubah.sumber
-colorspace gray
alih-alih-grayscale Rec709Luminance
perbaikan itu, tetapi ini mengacaukan komposisi. Tambahkan-respect-parentheses
sebagai opsi pertamaconvert
untuk mengatasinya.pdfdiff
direktori dan juga mencetak jumlah halaman yang berbeda antara kedua PDF.-grayscale
tidak didukung, saya harus menggunakan-colorspace gray
seperti yang disarankan