Bagaimana cara memperbaiki pencahayaan tidak rata / gradien pada kanvas dengan latar belakang putih?

24

Saya memiliki foto gambar pensil yang dibuat di atas kertas, diambil dengan hotshoe flash pada DSLR dan dua filter polarisasi ( teknik lintas polariser untuk fotografi kanvas).

Masalahnya sekarang adalah bahwa ketika semakin dekat dengan gambar, pencahayaan menjadi tidak merata karena lensa membuat bayangan pada bagian gambar. Ini menciptakan gradien di atas gambar yang kira-kira, tetapi tidak cukup, linear.

Di bawah ini adalah contoh gambar; aslinya sekitar 3 cm.

Bagaimana ini bisa diedit sehingga latar belakangnya putih merata?

Sumber gambar dengan pencahayaan tidak merata

—Edit—

Hasil pemindaian di bawah ini, tidak dikoreksi dan diperbaiki. Walaupun ini terlihat cukup menjanjikan pada awalnya, sayangnya resolusi penuh apa yang Anda lihat di sini (lebar 600 px); pemindai dapat melakukan 300 dpi, dan gambarnya sekitar satu inci lebarnya. Ini sedikit kurang dibandingkan dengan 5000 px dari kamera.

Juga, pemindaian yang tidak dikoreksi mengisyaratkan bahwa grafit memang mencerminkan bagian yang baik dari cahaya, yang bertentangan dengan teknik lintas-polariser.

Pindai tidak dikoreksi Pindai dengan kurva yang dikoreksi

Simon A. Eugster
sumber
Apakah ada alasan Anda mengambil foto itu alih-alih memindai?
Cole Johnson
Iya nih; kanvas bisa lebih besar dari A4. Tapi saya akan membandingkan hasilnya di malam hari. Saya agak curiga tentang refleksi yang dapat terjadi pada grafit.
Simon A. Eugster
@ColeJohnson Scan ditambahkan di atas.
Simon A. Eugster
Sesuatu yang lain untuk mencoba: mendapatkan meja cahaya , atau hanya menutup gambar Anda dan bersinar cahaya terang itu dari sisi belakang, dan foto dengan cahaya bersinar melalui itu (membiarkan kertas itu sendiri bertindak sebagai diffuser). Tentu saja, ini tidak akan bekerja dengan cat buram, atau jika ada sesuatu yang ditarik di sisi sebaliknya, tetapi untuk gambar satu sisi, krayon, tinta atau gambar cat air mungkin layak untuk dicoba.
Ilmari Karonen

Jawaban:

8

Metode yang saya gunakan sendiri mirip dengan Anda , tetapi menggunakan plug-in Resynthesizer (untuk GIMP) atau Content-Aware Fill (untuk Photoshop) untuk merekonstruksi gradien:

  1. Buat pilihan yang sepenuhnya menutupi gambar. Anda dapat melakukan ini dengan tangan, atau Anda dapat menggunakan penyaringan high-pass untuk menghitung mask seleksi seperti ini:

    • Mulailah dengan menggunakan filter deteksi tepi seperti Perbedaan Gaussi pada (salinan) pemindaian Anda untuk mengekstraksi gambar dengan kasar:

      Langkah 1.1: Ekstrak gambar dengan Perbedaan Gaussians

    • Jika hasilnya kurang kontras, gunakan alat Levels untuk menggelapkannya:

      Langkah 1.2: Sesuaikan level

    • Terapkan beberapa Gaussian Blur :

      Langkah 1.3: Terapkan Gaussian blur

    • Gunakan alat Threshold untuk mendapatkan topeng yang menutupi seluruh gambar, dan gunakan Select by Color untuk memilihnya:

      Langkah 1.4: Gunakan alat ambang untuk mendapatkan topeng

  2. Setelah Anda memiliki pilihan yang meliputi gambar, buat salinan dari lapisan pindai asli dan gunakan Heal Selection / Content-Aware Fill untuk mengisinya. Idealnya, layer yang Anda salin sekarang akan terlihat seperti gambar selembar kertas kosong:

    Langkah 2: Sembuhkan pilihan untuk merekonstruksi kertas kosong

  3. Atur mode layer yang diedit ke Divide, seperti pada jawaban Anda sendiri. Jika Anda ingin mempertahankan beberapa tekstur dan / atau naungan kertas, Anda mungkin ingin sedikit mengurangi kekeruhan lapisan, dan mungkin menerapkan sedikit kekaburan:

    Langkah 3: Membagi dengan lapisan kertas kosong

    (Gambar di atas memiliki lapisan Gaussian yang terisi kabur 10px, dan opacity diatur ke 95%.)

  4. Secara opsional, setelah menggabungkan lapisan, sesuaikan level untuk mengatur titik hitam (tip: gunakan tampilan histogram logaritmik) dan tingkatkan kontras:

    Langkah 4: Sesuaikan level

(Mz. Klik gambar setengah ukuran untuk melihatnya dalam ukuran penuh.)

Yang menyenangkan tentang metode ini adalah ia dapat bekerja dengan cukup baik bahkan untuk gradien naungan yang cukup non-linear. Tentu saja, itu tidak sempurna - jika kertas memiliki, katakanlah, noda tidak teratur yang batasnya sebagian terletak di bawah gambar, isi konten-sadar tidak mungkin untuk merekonstruksi dengan benar. Namun, seperti yang terlihat di atas, seringkali memberikan hasil yang cukup baik.

Ilmari Karonen
sumber
Itu sangat keren dan sebenarnya yang ingin saya lakukan pertama kali, tetapi saya tidak menemukan Resynthesizer! Akan mencoba ini besok dengan beberapa gambar. Ingin tahu tentang tempat di mana sebagian besar gambar tertutup. Hasil Anda sudah terlihat hebat.
Simon A. Eugster
Sepertinya saya tidak bisa mendaftarkan Heal Selection di Gimp, sayangnya ...
Simon A. Eugster
Itu aneh. Apakah Anda menggunakan Windows atau Linux? Satu kemungkinan adalah bahwa Anda mungkin tidak memiliki Python tersedia, atau GIMP mungkin tidak menemukannya karena suatu alasan. Jika demikian, Heal Selection mungkin tidak berfungsi, tetapi Filter dasar > Map> Resynthesize (yang dapat melakukan apa saja yang bisa Heal Selection, bahkan jika UI mungkin tidak begitu nyaman) tetap harus tersedia.
Ilmari Karonen
Saya di Linux dan harus mengkompilasi plugin sendiri. Peta> Mensintesiskan kembali memang tersedia. Bagaimana saya dapat memeriksa apakah Gimp menemukan versi python yang diperlukan? Saya sudah menginstal 2.7.5 dan 3.3.2.
Simon A. Eugster
Saya tidak begitu yakin; Saya menggunakan Ubuntu sendiri, dan biarkan APT mengurus semuanya. Apakah submenu Python-Fu muncul untuk Anda? Jika tidak, Anda mungkin perlu menginstal GIMP-Python (jika tersedia secara terpisah dari GIMP itu sendiri) dan / atau mengkompilasi ulang GIMP dengan dukungan Python diaktifkan. Kemudian lagi, saya benar-benar hanya menebak-nebak di sini.
Ilmari Karonen
18

Sunting: Saya menulis skrip Gimp yang melakukan langkah-langkah di bawah ini, dan satu lagi untuk jawaban Ilmaris . Kedua skrip tersedia untuk diunduh di GitHub . Cara yang disarankan untuk pergi adalah yang ini .


Saya menjawab ini di sini karena saya telah mencari solusi untuk beberapa waktu dan menemukan solusi yang sederhana dan berfungsi. Mari kita langsung menuju hasil:

  1. Buat layer latar belakang dengan menyalin garis vertikal latar belakang saja dan rentangkan ke ukuran gambar asli.

    Di Gimp: Pilih rpersegi panjang dari atas ke bawah yang berisi latar belakang, tempel Shift+Ctrl+Vke gambar baru, dan perluas Filter > Map > Tileukuran gambar, jalankan gaussian blur di atasnya, lalu salin kembali ke gambar sebagai layer baru.

  2. Atur mode lapisan ke Divisi .

  3. Kurangi opacity layer sesuai keinginan, misalnya hingga 90%. Menjaga 100% biasanya agak terlalu terang.

Langkah pembagian

Apa yang dilakukan, pada dasarnya, adalah bahwa lapisan latar belakang mendefinisikan nilai RGB w"putih" pada setiap piksel. The Divisi layer mode kemudian membentang nilai pada gambar dari [0,w]ke [0,255](lihat GIMP lapisan mode ) per pixel.

(Buruk) Contoh menggunakan kurva dan gradien linier

Upaya pertama selalu tentang menduplikasi layer, mengubah kecerahan sedemikian rupa sehingga bagian paling gelap di bagian bawah menyala dengan benar, dan menambahkan layer mask dengan gradien linier untuk menerangi wilayah yang lebih gelap saja. Semakin kuat gradien, semakin buruk tampilannya.

Mencoba dengan gradien linier

(Lebih baik) Contoh menggunakan pembagian

Divisi menghasilkan hasil yang jauh lebih baik; pencahayaan diperbaiki secara merata, dan tidak ada area yang terbakar terutama di bagian kiri gambar.

Menggunakan divisi

Simon A. Eugster
sumber
Atau hanya mengubah pengaturan level di photoshop
SaturnsEye
3
Untuk hasil yang lebih baik, terutama dalam kasus bayangan non-konstan / non-linier di kedua arah, dapat mengambil foto selembar kertas putih, menerapkan sedikit kekaburan untuk menghilangkan noise kamera, dan menggunakan itu sebagai dasar lapisan penyesuaian.
PlasmaHH
1
@ SaturnsEye Cobalah dengan gambar input di atas. Tidak berfungsi;) Jika kertasnya berwarna abu-abu genap, seperti 10%, maka ya, itu akan menjadi cara termudah.
Simon A. Eugster
@PlasmaHH Ini akan mengharuskan saya menggunakan tripod untuk mendapatkan jarak yang konsisten, tetapi merupakan solusi yang bagus terutama untuk foto-foto yang banyak dicat. Bagian belakang kertas biasanya berwarna putih, jadi bisa digunakan untuk lapisan penyesuaian. (Kami menggunakan berbagai jenis kertas dengan berbagai corak abu-abu / coklat).
Simon A. Eugster
@ SimonA.Eugster: Jika saya melakukan hal-hal ini lebih dari sekali dalam beberapa waktu saya akan menggunakan tripod dan pengaturan cahaya yang dapat diatur ulang untuk hasil yang konsisten.
PlasmaHH
5

Jawaban ini menjelaskan pendekatan andal tercepat yang saya tahu, berdasarkan jawaban Ilmari Kanoren . Ini semi-otomatis; masker otomatis tidak berfungsi untuk gambar keras seperti di bawah ini karena tidak ada tepi di beberapa bagian gambar.

Skrip Gimp ini mengotomatiskan langkah 3 dan 4 (perhatikan bahwa Resynthesizer diperlukan), sehingga alur kerjanya cukup: Buat seleksi, jalankan skrip. Diperlukan 6 detik untuk skrip untuk menyelesaikan gambar 15 MP pada laptop saya yang berusia 3 tahun.

masukkan deskripsi gambar di sini

Langkah 1 (opsional): Sesuaikan kurva untuk hitam pekat

Titik hitam

Langkah 2: Pilih objek

Di Gimp, Topeng Cepat Shift+Qadalah cara cepat. Gunakan pensil Ndan cat benda itu dengan warna putih, tekan Shift+Qlagi untuk mengubah topeng menjadi pilihan.

Objek yang dipilih

Langkah 3: Buat kembali latar belakang

  • Gandakan gambar dan skala hingga 400 × 400 px
  • Gunakan Heal Selection atau Content-aware fill untuk menyembuhkan objek yang hilang (hanya latar belakang yang tersisa)
  • Gunakan Gaussian Blur, 40 × 40 px
  • Skala kembali gambar ke ukuran asli dan salin kembali sebagai lapisan ke gambar asli

Latar Belakang

Langkah 4: Mode pembagian

Atur mode layer ke Division dan kurangi opacity sedikit, jika diinginkan.

Memperbaiki gambar

Simon A. Eugster
sumber
1

Ini adalah forum fotografi, jadi saya akan mengambil pendekatan fotografi. Tentu saja untuk putih sempurna Anda mungkin masih perlu beberapa penyesuaian pasca produksi.

Alih-alih menggunakan flash, Anda dapat mencoba menggunakan cahaya alami. Hindari sinar matahari langsung, jangan terlalu dekat dengan jendela, tetapi berjarak 2 meter dari jendela. Ini untuk mengurangi perbedaan cahaya antara bagian gambar terdekat dan terjauh. (Tapi karena ini adalah gambar kecil yang jaraknya mungkin tidak terlalu penting.)

Anda bisa mengarahkan tripod menghadap ke bawah dan meletakkan gambar Anda di lantai.

Atau jika Anda tidak memiliki tripod, Anda dapat mengatur sampul buku atau kotak sereal untuk menahan gambar secara vertikal di atas meja, dan meletakkan kamera Anda secara mantap di meja yang sama. (Letakkan selembar kertas putih di belakang gambar Anda untuk menghindari melihat gambar latar belakang atau tekstur.)

Teknik polarizer yang Anda sebutkan adalah dalam kasus Anda memiliki gambar di balik gelas, dan ketika Anda memiliki benda atau pantulan terang. Tetapi jika sumber cahaya Anda dalam sudut miring Anda mungkin tidak perlu menggunakan filter.

Rafael
sumber
Saya sadar akan pencahayaan sekitar. Kemungkinan akan menghasilkan hasil yang lebih baik mengenai gradien, meskipun pada jarak ini kemungkinan besar lensa akan mulai melemparkan bayangan di atas kertas. Polarizer sebenarnya diperlukan di sini karena permukaan kertas tidak rata, dan grafit secara mengejutkan tidak dengan baik memantulkan cahaya semakin gelap area yang Anda inginkan;) Selain itu, menekan sedikit lebih keras dengan pensil dapat membuat lekukan di mana cahaya sekitar dapat memantulkan lagi .
Simon A. Eugster