Lihatlah foto-foto pemandangan alam ini, dengan salah satu saluran RGB diambil darinya:
Sumber (dengan warna merah): https://en.wikipedia.org/wiki/File:Altja_j%C3%B5gi_Lahemaal.jpg
Sumber (dengan warna hijau): https://commons.wikimedia.org/wiki/File:007_mather-lake_hg.jpg
Sumber (dengan warna biru): https://commons.wikimedia.org/wiki/File:Fox_01.jpg
Bahkan tanpa salah satu saluran, Anda mungkin dapat mengetahui warna apa yang seharusnya, atau setidaknya memiliki ide bagus jika rekonstruksi saluran yang hilang akurat.
Sebagai contoh, berikut adalah gambar pertama dengan saluran merah yang ditambahkan kembali ke dalamnya yang merupakan derau acak:
Gambar ini jelas bukan rekonstruksi akurat dari saluran merah. Ini karena foto alam umumnya tidak menggunakan seluruh spektrum RGB, tetapi hanya sebagian dari "warna yang tampak alami". Juga, nuansa merah akan mengikuti gradien tertentu yang berkorelasi dengan yang lain.
Tugas Anda adalah membuat program yang akan mengambil foto yang satu salurannya dihapus dan berusaha mendekati gambar aslinya sedekat mungkin dengan merekonstruksi apa yang diyakini sebagai saluran yang hilang.
Program Anda akan dinilai berdasarkan seberapa dekat saluran yang hilang cocok dengan saluran gambar asli, dengan menghitung persentase piksel yang nilainya dari saluran tersebut berada dalam ± 15 (inklusif) dari nilai aktual dalam gambar asli (di mana nilainya berkisar dari 0 hingga 255 seperti pada saluran warna 8-bit standar).
Kasing uji bahwa program Anda akan dinilai dapat ditemukan di sini (file zip 9,04 MB, 6 gambar). Saat ini hanya berisi tiga contoh gambar di atas dan aslinya, tetapi saya akan menambahkan beberapa lagi nanti untuk membuat suite lengkap setelah saya selesai melakukannya.
Setiap gambar diperkecil dan dipotong menjadi 1024 x 768, sehingga memiliki bobot yang sama dalam skor Anda. Program yang dapat memprediksi piksel terbanyak dalam toleransi yang diberikan menang.
Jawaban:
Python 3 + scikit-image
Cukup atur warna saluran yang hilang ke rata-rata dari dua saluran lainnya.
Dan gambar yang dipulihkan:
sumber
Lua, Love2D
Atur saja saluran yang hilang ke yang lebih kecil dari dua saluran yang tersisa.
Mengambil nama file sebagai argumen di baris perintah.
Bonus
Saya mencoba mengatur saluran yang hilang ke 255- (a + b), menjepit nilainya. Seperti untuk "mengisi celah". Hasilnya tidak berguna tetapi mulia.
Dan dengan 255- (a + b) / 2
sumber